vxlan: use one headroom snapshot for neighbour replies
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 3.13, 3.14, 6.6.158, 6.12.112, 6.18.55, and 1 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: vxlan: use one headroom snapshot for neighbour replies vxlan_na_create() samples LL_RESERVED_SPACE() to size the reply skb and then samples it again to reserve headroom. A concurrent vxlan_changelink() can update needed_headroom between the two reads, creating a TOCTOU race. The second value can exceed the allocation and make the Ethernet header write out of bounds. The race is reproducible on the unpatched kernel. It occurred when vxlan_na_create() generated a neighbour reply while vxlan_changelink() changed the link headroom. KASAN caught a four-byte write two bytes beyond a 704-byte skbuff_small_head allocation. Snapshot the headroom once and use that value for both allocation and reservation.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 3.12.18 · fixed in 3.13; From 3.13.10 · fixed in 3.14
- Linux Linux
3.14
- KernelLinux
From 3.14.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.55; From 6.19.0 · fixed in 7.2.9
References 8
git.kernel.org
- stable/c/e3e24f4c434c56952412f875b834aa9daaa4fb15
- stable/c/9ed5a548b42d46e6968a46b67ca8a8e49b12a5a1
- stable/c/fcaf456092dc86fd5b0b523ac27ec0d114066931
- stable/c/45a67662bf8ce3aa5643accf98d328dfbb47eaf6
- stable/c/315d42ca39f69846662961c25dcf2bb07c350d14
- stable/c/a3c5eb6e382dd426a5e7eb08608897ed57167ff7
- stable/c/ff022fd9d0f0282c575e11778b96bd1b637503eb
- stable/c/481506a756dcd828ef42391cb08f38d8d96d38fc