| From bippy-5f407fcff5a0 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| To: <linux-cve-announce@vger.kernel.org> |
| Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org> |
| Subject: CVE-2024-26861: wireguard: receive: annotate data-race around receiving_counter.counter |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| wireguard: receive: annotate data-race around receiving_counter.counter |
| |
| Syzkaller with KCSAN identified a data-race issue when accessing |
| keypair->receiving_counter.counter. Use READ_ONCE() and WRITE_ONCE() |
| annotations to mark the data race as intentional. |
| |
| BUG: KCSAN: data-race in wg_packet_decrypt_worker / wg_packet_rx_poll |
| |
| write to 0xffff888107765888 of 8 bytes by interrupt on cpu 0: |
| counter_validate drivers/net/wireguard/receive.c:321 [inline] |
| wg_packet_rx_poll+0x3ac/0xf00 drivers/net/wireguard/receive.c:461 |
| __napi_poll+0x60/0x3b0 net/core/dev.c:6536 |
| napi_poll net/core/dev.c:6605 [inline] |
| net_rx_action+0x32b/0x750 net/core/dev.c:6738 |
| __do_softirq+0xc4/0x279 kernel/softirq.c:553 |
| do_softirq+0x5e/0x90 kernel/softirq.c:454 |
| __local_bh_enable_ip+0x64/0x70 kernel/softirq.c:381 |
| __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:167 [inline] |
| _raw_spin_unlock_bh+0x36/0x40 kernel/locking/spinlock.c:210 |
| spin_unlock_bh include/linux/spinlock.h:396 [inline] |
| ptr_ring_consume_bh include/linux/ptr_ring.h:367 [inline] |
| wg_packet_decrypt_worker+0x6c5/0x700 drivers/net/wireguard/receive.c:499 |
| process_one_work kernel/workqueue.c:2633 [inline] |
| ... |
| |
| read to 0xffff888107765888 of 8 bytes by task 3196 on cpu 1: |
| decrypt_packet drivers/net/wireguard/receive.c:252 [inline] |
| wg_packet_decrypt_worker+0x220/0x700 drivers/net/wireguard/receive.c:501 |
| process_one_work kernel/workqueue.c:2633 [inline] |
| process_scheduled_works+0x5b8/0xa30 kernel/workqueue.c:2706 |
| worker_thread+0x525/0x730 kernel/workqueue.c:2787 |
| ... |
| |
| The Linux kernel CVE team has assigned CVE-2024-26861 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 5.7 with commit a9e90d9931f3a474f04bab782ccd9d77904941e9 and fixed in 5.10.214 with commit f87884e0dffd61b47e58bc6e1e2f6843c212b0cc |
| Issue introduced in 5.7 with commit a9e90d9931f3a474f04bab782ccd9d77904941e9 and fixed in 5.15.153 with commit d691be84ab898cf136a35176eaf2f8fc116563f0 |
| Issue introduced in 5.7 with commit a9e90d9931f3a474f04bab782ccd9d77904941e9 and fixed in 6.1.83 with commit 45a83b220c83e3c326513269afbf69ae6fc65cce |
| Issue introduced in 5.7 with commit a9e90d9931f3a474f04bab782ccd9d77904941e9 and fixed in 6.6.23 with commit 78739d72f16b2d7d549f713f1dfebd678d32484b |
| Issue introduced in 5.7 with commit a9e90d9931f3a474f04bab782ccd9d77904941e9 and fixed in 6.7.11 with commit 3f94da807fe1668b9830f0eefbbf7e887b0a7bc6 |
| Issue introduced in 5.7 with commit a9e90d9931f3a474f04bab782ccd9d77904941e9 and fixed in 6.8.2 with commit fdf16de078a97bf14bb8ee2b8d47cc3d3ead09ed |
| Issue introduced in 5.7 with commit a9e90d9931f3a474f04bab782ccd9d77904941e9 and fixed in 6.9 with commit bba045dc4d996d03dce6fe45726e78a1a1f6d4c3 |
| Issue introduced in 5.6.16 with commit 4a7939808afdc57ecaeb72d049e2985321a1e44e |
| |
| Please see https://www.kernel.org for a full list of currently supported |
| kernel versions by the kernel community. |
| |
| Unaffected versions might change over time as fixes are backported to |
| older supported kernel versions. The official CVE entry at |
| https://cve.org/CVERecord/?id=CVE-2024-26861 |
| will be updated if fixes are backported, please check that for the most |
| up to date information about this issue. |
| |
| |
| Affected files |
| ============== |
| |
| The file(s) affected by this issue are: |
| drivers/net/wireguard/receive.c |
| |
| |
| Mitigation |
| ========== |
| |
| The Linux kernel CVE team recommends that you update to the latest |
| stable kernel version for this, and many other bugfixes. Individual |
| changes are never tested alone, but rather are part of a larger kernel |
| release. Cherry-picking individual commits is not recommended or |
| supported by the Linux kernel community at all. If however, updating to |
| the latest release is impossible, the individual changes to resolve this |
| issue can be found at these commits: |
| https://git.kernel.org/stable/c/f87884e0dffd61b47e58bc6e1e2f6843c212b0cc |
| https://git.kernel.org/stable/c/d691be84ab898cf136a35176eaf2f8fc116563f0 |
| https://git.kernel.org/stable/c/45a83b220c83e3c326513269afbf69ae6fc65cce |
| https://git.kernel.org/stable/c/78739d72f16b2d7d549f713f1dfebd678d32484b |
| https://git.kernel.org/stable/c/3f94da807fe1668b9830f0eefbbf7e887b0a7bc6 |
| https://git.kernel.org/stable/c/fdf16de078a97bf14bb8ee2b8d47cc3d3ead09ed |
| https://git.kernel.org/stable/c/bba045dc4d996d03dce6fe45726e78a1a1f6d4c3 |