ftrace: Also allocate and copy hash for reading of filter files
- 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 5.4.297, 5.10.241, 5.15.190, 6.1.149, 6.6.103, 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: total
Summary
In the Linux kernel, the following vulnerability has been resolved: ftrace: Also allocate and copy hash for reading of filter files Currently the reader of set_ftrace_filter and set_ftrace_notrace just adds the pointer to the global tracer hash to its iterator. Unlike the writer that allocates a copy of the hash, the reader keeps the pointer to the filter hashes. This is problematic because this pointer is static across function calls that release the locks that can update the global tracer hashes. This can cause UAF and similar bugs. Allocate and copy the hash for reading the filter files like it is done for the writers. This not only fixes UAF bugs, but also makes the code a bit simpler as it doesn't have to differentiate when to free the iterator's hash between writers and readers.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From c20489dad156dd9919ebd854bbace46dbd2576a3 · fixed in 12064e1880fc9202be75ff668205b1703d92f74f; From c20489dad156dd9919ebd854bbace46dbd2576a3 · fixed in c4cd93811e038d19f961985735ef7bb128078dfb; From c20489dad156dd9919ebd854bbace46dbd2576a3 · fixed in e0b6b223167e1edde5c82edf38e393c06eda1f13; From c20489dad156dd9919ebd854bbace46dbd2576a3 · fixed in a40c69f4f1ed96acbcd62e9b5ff3a596f0a91309; From c20489dad156dd9919ebd854bbace46dbd2576a3 · fixed in 3b114a3282ab1a12cb4618a8f45db5d7185e784a; From c20489dad156dd9919ebd854bbace46dbd2576a3 · fixed in c591ba1acd081d4980713e47869dd1cc3d963d19; From c20489dad156dd9919ebd854bbace46dbd2576a3 · fixed in 64db338140d2bad99a0a8c6a118dd60b3e1fb8cb; From c20489dad156dd9919ebd854bbace46dbd2576a3 · fixed in bfb336cf97df7b37b2b2edec0f69773e06d11955
- Linux Linux
4.12
- KernelLinux
From 4.12.0 · fixed in 5.4.297; From 5.5.0 · fixed in 5.10.241; From 5.11.0 · fixed in 5.15.190; From 5.16.0 · fixed in 6.1.149; From 6.2.0 · fixed in 6.6.103; From 6.7.0 · fixed in 6.12.44; From 6.13.0 · fixed in 6.16.4
References 8
git.kernel.org
- stable/c/12064e1880fc9202be75ff668205b1703d92f74f
- stable/c/c4cd93811e038d19f961985735ef7bb128078dfb
- stable/c/e0b6b223167e1edde5c82edf38e393c06eda1f13
- stable/c/a40c69f4f1ed96acbcd62e9b5ff3a596f0a91309
- stable/c/3b114a3282ab1a12cb4618a8f45db5d7185e784a
- stable/c/c591ba1acd081d4980713e47869dd1cc3d963d19
- stable/c/64db338140d2bad99a0a8c6a118dd60b3e1fb8cb
- stable/c/bfb336cf97df7b37b2b2edec0f69773e06d11955