Executive brief
A vulnerability was identified in the Linux kernel's IPv6 networking component that could lead to a system crash. The issue occurs due to a technical race condition when the system manages network routing information, potentially allowing a local user to trigger a denial-of-service. This affects the stability of the operating system but does not directly expose customer data.
Technical details
A race condition exists in the __fib6_drop_pcpu_from() function within the IPv6 Forwarding Information Base (FIB) implementation. The vulnerability is caused by the compiler potentially performing multiple reads of a per-CPU route pointer (*ppcpu_rt); if another CPU clears this value via rt6_get_pcpu_route() between reads, the second read may return NULL, leading to a general protection fault. An attacker with local access could potentially trigger this race to cause a kernel oops and denial-of-service. The fix involves using READ_ONCE() to ensure atomic access and implementing RCU read locks to protect the dereferencing of the per-CPU route. Patches have been released for multiple stable kernel branches.
Affected products
- Linux Linux Kernel versions prior to 6.10-rc1
Timeline
- 2024-06-04: patched: Initial patch authored by Eric Dumazet
- 2024-07-12: disclosed: CVE-2024-40905 published
References
- https://git.kernel.org/stable/c/09e5a5a80e205922151136069e440477d6816914
- https://git.kernel.org/stable/c/2498960dac9b6fc49b6d1574f7cd1a4872744adf
- https://git.kernel.org/stable/c/7e796c3fefa8b17b30e7252886ae8cffacd2b9ef
- https://git.kernel.org/stable/c/a0bc020592b54a8f3fa2b7f244b6e39e526c2e12
- https://git.kernel.org/stable/c/b01e1c030770ff3b4fe37fc7cc6bca03f594133f
- https://git.kernel.org/stable/c/c693698787660c97950bc1f93a8dd19d8307153d
- https://git.kernel.org/stable/c/c90af1cced2f669a7b2304584be4ada495eaa0e5