bpf: fix end-of-list detection in cgroup_storage_get_next_key()
- 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.10.258, 5.15.209, 6.1.175, 6.6.141, 6.12.91, 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
Summary
In the Linux kernel, the following vulnerability has been resolved: bpf: fix end-of-list detection in cgroup_storage_get_next_key() list_next_entry() never returns NULL -- when the current element is the last entry it wraps to the list head via container_of(). The subsequent NULL check is therefore dead code and get_next_key() never returns -ENOENT for the last element, instead reading storage->key from a bogus pointer that aliases internal map fields and copying the result to userspace. Replace it with list_entry_is_head() so the function correctly returns -ENOENT when there are no more entries.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From de9cbbaadba5adf88a19e46df61f7054000838f6 · fixed in 0f3d9dd5e1fd52b39e25328307c6a694e994ffe3; From de9cbbaadba5adf88a19e46df61f7054000838f6 · fixed in 26d3339e465e54107bd85884341d1609c5300d6a; From de9cbbaadba5adf88a19e46df61f7054000838f6 · fixed in 2c88b2d96e1d4d0c7c4589a4593d4cdee6d332d6; From de9cbbaadba5adf88a19e46df61f7054000838f6 · fixed in b4b5a20bed82130da2f2818f04d52378952fbd0b; From de9cbbaadba5adf88a19e46df61f7054000838f6 · fixed in 85a2f30e40f7468db732f55659bc6318874f49af; From de9cbbaadba5adf88a19e46df61f7054000838f6 · fixed in 32ce55d424395904986f5066f8755f6cb9993377; From de9cbbaadba5adf88a19e46df61f7054000838f6 · fixed in fc39753b7f92e09177777e9c648afe5aa3abb81f; From de9cbbaadba5adf88a19e46df61f7054000838f6 · fixed in 5828b9e5b272ecff7cf5d345128d3de7324117f7
- Linux Linux
4.19
- KernelLinux
From 4.19.0 · fixed in 5.10.258; From 5.11.0 · fixed in 5.15.209; From 5.16.0 · fixed in 6.1.175; From 6.2.0 · fixed in 6.6.141; From 6.7.0 · fixed in 6.12.91; From 6.13.0 · fixed in 6.18.33; From 6.19.0 · fixed in 7.0.10
References 8
git.kernel.org
- stable/c/0f3d9dd5e1fd52b39e25328307c6a694e994ffe3
- stable/c/26d3339e465e54107bd85884341d1609c5300d6a
- stable/c/2c88b2d96e1d4d0c7c4589a4593d4cdee6d332d6
- stable/c/b4b5a20bed82130da2f2818f04d52378952fbd0b
- stable/c/85a2f30e40f7468db732f55659bc6318874f49af
- stable/c/32ce55d424395904986f5066f8755f6cb9993377
- stable/c/fc39753b7f92e09177777e9c648afe5aa3abb81f
- stable/c/5828b9e5b272ecff7cf5d345128d3de7324117f7