Skip to main content
← All vulnerabilities
CVE-2024-41005

netpoll: Fix race condition in netpoll_owner_active

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.10.221, 5.15.162, 6.1.96, 6.6.36, 6.9.7
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: partial

Summary

In the Linux kernel, the following vulnerability has been resolved: netpoll: Fix race condition in netpoll_owner_active KCSAN detected a race condition in netpoll: BUG: KCSAN: data-race in net_rx_action / netpoll_send_skb write (marked) to 0xffff8881164168b0 of 4 bytes by interrupt on cpu 10: net_rx_action (./include/linux/netpoll.h:90 net/core/dev.c:6712 net/core/dev.c:6822) <snip> read to 0xffff8881164168b0 of 4 bytes by task 1 on cpu 2: netpoll_send_skb (net/core/netpoll.c:319 net/core/netpoll.c:345 net/core/netpoll.c:393) netpoll_send_udp (net/core/netpoll.c:?) <snip> value changed: 0x0000000a -> 0xffffffff This happens because netpoll_owner_active() needs to check if the current CPU is the owner of the lock, touching napi->poll_owner non atomically. The ->poll_owner field contains the current CPU holding the lock. Use an atomic read to check if the poll owner is the current CPU.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • Linux Linux

    From 89c4b442b78bdba388337cc746fe63caba85f46c · fixed in 43c0ca793a18578a0f5b305dd77fcf7ed99f1265; From 89c4b442b78bdba388337cc746fe63caba85f46c · fixed in efd29cd9c7b8369dfc7bcb34637e6bf1a188aa8e; From 89c4b442b78bdba388337cc746fe63caba85f46c · fixed in 96826b16ef9c6568d31a1f6ceaa266411a46e46c; From 89c4b442b78bdba388337cc746fe63caba85f46c · fixed in 3f1a155950a1685ffd0fd7175b3f671da8771f3d; From 89c4b442b78bdba388337cc746fe63caba85f46c · fixed in a130e7da73ae93afdb4659842267eec734ffbd57; From 89c4b442b78bdba388337cc746fe63caba85f46c · fixed in c2e6a872bde9912f1a7579639c5ca3adf1003916

  • Linux Linux

    4.10

  • KernelLinux

    From 4.10.0 · fixed in 5.10.221; From 5.11.0 · fixed in 5.15.162; From 5.16.0 · fixed in 6.1.96; From 6.2.0 · fixed in 6.6.36; From 6.7.0 · fixed in 6.9.7

References 6

git.kernel.org