mm/hugetlb: fix huge_pmd_unshare() vs GUP-fast race
- 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
- 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: mm/hugetlb: fix huge_pmd_unshare() vs GUP-fast race huge_pmd_unshare() drops a reference on a page table that may have previously been shared across processes, potentially turning it into a normal page table used in another process in which unrelated VMAs can afterwards be installed. If this happens in the middle of a concurrent gup_fast(), gup_fast() could end up walking the page tables of another process. While I don't see any way in which that immediately leads to kernel memory corruption, it is really weird and unexpected. Fix it with an explicit broadcast IPI through tlb_remove_table_sync_one(), just like we do in khugepaged when removing page tables for a THP collapse.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
Version range not reported
- Linux Linux
2.6.20
References 8
git.kernel.org
- stable/c/952596b08c74e8fe9e2883d1dc8a8f54a37384ec
- stable/c/a3d864c901a300c295692d129159fc3001a56185
- stable/c/b7754d3aa7bf9f62218d096c0c8f6c13698fac8b
- stable/c/fe684290418ef9ef76630072086ee530b92f02b8
- stable/c/034a52b5ef57c9c8225d94e9067f3390bb33922f
- stable/c/a6bfeb97941a9187833b526bc6cc4ff5706d0ce9
- stable/c/1013af4f585fccc4d3e5c5824d174de2257f7d6d