CVE-2024-36971 A-343727534 ASB-A-343727534
net: fix __dst_negative_advice() race
- Severity
- 7.8 / 10
- High · CVSS 3.1
- Exploit chance (EPSS)
- 2.70%
- Chance of exploitation in the next 30 days. Higher than 85.94% of scored vulnerabilities.
- Known exploited
- Yes
- In CISA's catalog since Aug 7, 2024
- Weakness
- CWE-416 Use After Free
- Fix
6.9.4- Upgrade Kernel to this version or later
Description
In the Linux kernel, the following vulnerability has been resolved:
net: fix __dst_negative_advice() race
__dst_negative_advice() does not enforce proper RCU rules when sk->dst_cache must be cleared, leading to possible UAF.
RCU rules are that we must first clear sk->sk_dst_cache, then call dst_release(old_dst).
Note that sk_dst_reset(sk) is implementing this protocol correctly, while __dst_negative_advice() uses the wrong order.
Given that ip6_negative_advice() has special logic against RTF_CACHE, this means each of the three ->negative_advice() existing methods must perform the sk_dst_reset() themselves.
Note the check against NULL dst is centralized in __dst_negative_advice(), there is no need to duplicate it in various callbacks.
Many thanks to Clement Lecigne for tracking this issue.
This old bug became visible after the blamed commit, using UDP sockets.
Affected versions
Linux
| Package | Vulnerable | Fixed in |
|---|---|---|
| Kernel | >= 4.6.0, < 4.19.316>= 4.20.0, < 5.4.278>= 5.5.0, < 5.10.219>= 5.11.0, < 5.15.161>= 5.16.0, < 6.1.94>= 6.2.0, < 6.6.34>= 6.7.0, < 6.9.4 |
4.19.3165.4.2785.10.2195.15.1616.1.946.6.346.9.4 |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
Kernel Linux → 6.9.4
Set Kernel to 6.9.4 or later in your manifest.
Severity breakdown
CVSS 3.1 7.8
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Attack vector
- Local
- Attack complexity
- Low
- Privileges required
- Low
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Weakness
CWE-416: Use After Free
The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory "belongs" to the code that operates on the new pointer.
How to prevent it
- Architecture and Design: Choose a language that provides automatic memory management.
- Implementation: When freeing pointers, be sure to set them to NULL once they are freed. However, the utilization of multiple or complex data structures may lower the usefulness of this strategy.
References
Advisories
Packages
Other links
- git.kernel.org/stable/c/051c0bde9f0450a2ec3d62a86d2a0d2fad117f13
- git.kernel.org/stable/c/2295a7ef5c8c49241bff769e7826ef2582e532a6
- git.kernel.org/stable/c/5af198c387128a9d2ddd620b0f0803564a4d4508
- git.kernel.org/stable/c/81dd3c82a456b0015461754be7cb2693991421b4
- git.kernel.org/stable/c/92f1655aa2b2294d0b49925f3b875a634bd3b59e
- git.kernel.org/stable/c/b8af8e6118a6605f0e495a58d591ca94a85a50fc
- git.kernel.org/stable/c/db0082825037794c5dba9959c9de13ca34cc5e72
- git.kernel.org/stable/c/eacb8b195579c174a6d3e12a9690b206eb7f28cf
- lists.debian.org/debian-lts-announce/2024/06/msg00020.html
- cisa.gov/known-exploited-vulnerabilities-catalog
Timeline
- Published
- Added to CISA's Known Exploited Vulnerabilities catalog
- Remediation due for U.S. federal agencies
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| CVE-2026-53362 ipv6: account for fraggap on the paged allocation path | High Known exploited | Also affects Kernel |
| CVE-2026-53266 netfilter: bridge: make ebt_snat ARP rewrite writable | High Known exploited | Also affects Kernel |
| CVE-2026-46300 net: skbuff: preserve shared-frag marker during coalescing | High Known exploited | Also affects Kernel |
| CVE-2026-31431 crypto: algif_aead - Revert to operating out-of-place | High Known exploited | Also affects Kernel |
| CVE-2025-39964 crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg | Medium Known exploited | Also affects Kernel |
| CVE-2025-39682 tls: fix handling of zero-length records on the rx_list | Critical Known exploited | Also affects Kernel |
| CVE-2025-38352 posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del() | High Known exploited | Also affects Kernel |
| CVE-2024-53197 ALSA: usb-audio: Fix potential out-of-bound accesses for Extigy and Mbox devices | High Known exploited | Also affects Kernel |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor