CVE-2024-36971

net: fix __dst_negative_advice() race

HIGH
7.8
CVSS Score
Published: June 10, 2024 at 09:03 AM UTC
Updated: August 5, 2026 at 12:04 PM UTC
2 products affected across 2 vendorsLinux KernelDebian Linux

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.8
Exploitation
CISA KEV
Exploit prediction
EPSS 3%
SSVC
Active

Actively Exploited

CISA Known Exploited Vulnerabilities (KEV) Catalog

EPSS Score2.7%

EPSS (Exploit Prediction Scoring System) estimates a 2.7% chance this CVE is exploited in the wild within the next 30 days — higher than 86% of all CVEs. It complements CVSS: a high EPSS on a mid-severity CVE can still be urgent.

Android contains an unspecified vulnerability in the kernel that allows for remote code execution. This vulnerability resides in Linux Kernel and could impact other products, including but not limited to Android OS.

Required Action
Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.
Ransomware Use
Unknown
Added to KEV
Aug 7, 2024
Remediation Due
Aug 28, 2024
789 days overdue

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

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

4.20 ≤ v < 5.4.2784.6 ≤ v < 4.19.3164.6 ≤ v < 5.10.2194.6 ≤ v < 5.15.1614.6 ≤ v < 5.4.2784.6 ≤ v < 6.1.944.6 ≤ v < 6.104.6 ≤ v < 6.6.344.6 ≤ v < 6.9.45.11 ≤ v < 5.15.1615.16 ≤ v < 6.1.945.5 ≤ v < 5.10.2196.2 ≤ v < 6.6.346.7 ≤ v < 6.9.44.19.3164.65.10.2195.15.1615.4.2786.1.946.106.6.346.9.4a87cb3e48ee8a87cb3e48ee86d29868d3f59cfb9ce1a8fa63314
Vendor states this is fixed in 051c0bde9f04 (fixed)
Vendor states this is fixed in 051c0bde9f0450a2ec3d62a86d2a0d2fad117f13 (fixed)
Vendor states this is fixed in 2295a7ef5c8c (fixed)
Vendor states this is fixed in 2295a7ef5c8c49241bff769e7826ef2582e532a6 (fixed)
Vendor states this is fixed in 5af198c38712 (fixed)
Vendor states this is fixed in 5af198c387128a9d2ddd620b0f0803564a4d4508 (fixed)
Vendor states this is fixed in 81dd3c82a456 (fixed)
Vendor states this is fixed in 81dd3c82a456b0015461754be7cb2693991421b4 (fixed)
Vendor states this is fixed in 92f1655aa2b2 (fixed)
Vendor states this is fixed in 92f1655aa2b2294d0b49925f3b875a634bd3b59e (fixed)
Vendor states this is fixed in b8af8e6118a6 (fixed)
Vendor states this is fixed in b8af8e6118a6605f0e495a58d591ca94a85a50fc (fixed)
Vendor states this is fixed in db0082825037 (fixed)
Vendor states this is fixed in db0082825037794c5dba9959c9de13ca34cc5e72 (fixed)
Vendor states this is fixed in eacb8b195579 (fixed)
Vendor states this is fixed in eacb8b195579c174a6d3e12a9690b206eb7f28cf (fixed)
Vendor states this is fixed in 4.19.316 (unaffected)
Vendor states this is fixed in 4.6 (unaffected)
Vendor states this is fixed in 5.10.219 (unaffected)
Vendor states this is fixed in 5.15.161 (unaffected)
Vendor states this is fixed in 5.4.278 (unaffected)
Vendor states this is fixed in 6.1.94 (unaffected)
Vendor states this is fixed in 6.10 (unaffected)
Vendor states this is fixed in 6.6.34 (unaffected)
Vendor states this is fixed in 6.9.4 (unaffected)

References (10)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/051c0bde9f0450a2ec3d62a86d2a0d2fad117f13
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/2295a7ef5c8c49241bff769e7826ef2582e532a6
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/5af198c387128a9d2ddd620b0f0803564a4d4508
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/81dd3c82a456b0015461754be7cb2693991421b4
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/92f1655aa2b2294d0b49925f3b875a634bd3b59e
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/b8af8e6118a6605f0e495a58d591ca94a85a50fc
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/db0082825037794c5dba9959c9de13ca34cc5e72
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/eacb8b195579c174a6d3e12a9690b206eb7f28cf

SSVC — Action Prioritization

SSVCActiveNot automatableTotal impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

7.8HIGHLinux
Vector?

Quick Info

StatusANALYZED
CWE
CWE-416

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card