x86/mm: Fix pti_clone_pgtable() alignment assumption
- 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 4.19.320, 5.4.282, 5.10.224, 5.15.165, 6.1.105, and 2 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
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: x86/mm: Fix pti_clone_pgtable() alignment assumption Guenter reported dodgy crashes on an i386-nosmp build using GCC-11 that had the form of endless traps until entry stack exhaust and then #DF from the stack guard. It turned out that pti_clone_pgtable() had alignment assumptions on the start address, notably it hard assumes start is PMD aligned. This is true on x86_64, but very much not true on i386. These assumptions can cause the end condition to malfunction, leading to a 'short' clone. Guess what happens when the user mapping has a short copy of the entry text? Use the correct increment form for addr to avoid alignment assumptions.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 16a3fe634f6a568c6234b8747e5d50487fed3526 · fixed in 18da1b27ce16a14a9b636af9232acb4fb24f4c9e; From 16a3fe634f6a568c6234b8747e5d50487fed3526 · fixed in 25a727233a40a9b33370eec9f0cad67d8fd312f8; From 16a3fe634f6a568c6234b8747e5d50487fed3526 · fixed in d00c9b4bbc442d99e1dafbdfdab848bc1ead73f6; From 16a3fe634f6a568c6234b8747e5d50487fed3526 · fixed in 4d143ae782009b43b4f366402e5c37f59d4e4346; From 16a3fe634f6a568c6234b8747e5d50487fed3526 · fixed in 5c580c1050bcbc15c3e78090859d798dcf8c9763; From 16a3fe634f6a568c6234b8747e5d50487fed3526 · fixed in ca07aab70dd3b5e7fddb62d7a6ecd7a7d6d0b2ed; From 16a3fe634f6a568c6234b8747e5d50487fed3526 · fixed in df3eecb5496f87263d171b254ca6e2758ab3c35c; From 16a3fe634f6a568c6234b8747e5d50487fed3526 · fixed in 41e71dbb0e0a0fe214545fe64af031303a08524c
- Linux Linux
4.19
- KernelLinux
From 4.19.0 · fixed in 4.19.320; From 4.20.0 · fixed in 5.4.282; From 5.5.0 · fixed in 5.10.224; From 5.11.0 · fixed in 5.15.165; From 5.16.0 · fixed in 6.1.105; From 6.2.0 · fixed in 6.6.46; From 6.7.0 · fixed in 6.10.5
References 8
git.kernel.org
- stable/c/18da1b27ce16a14a9b636af9232acb4fb24f4c9e
- stable/c/25a727233a40a9b33370eec9f0cad67d8fd312f8
- stable/c/d00c9b4bbc442d99e1dafbdfdab848bc1ead73f6
- stable/c/4d143ae782009b43b4f366402e5c37f59d4e4346
- stable/c/5c580c1050bcbc15c3e78090859d798dcf8c9763
- stable/c/ca07aab70dd3b5e7fddb62d7a6ecd7a7d6d0b2ed
- stable/c/df3eecb5496f87263d171b254ca6e2758ab3c35c
- stable/c/41e71dbb0e0a0fe214545fe64af031303a08524c