kprobes: Skip disarmed probes when checking optkprobe overlap
- 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 6.6.160, 6.12.113, 6.18.56, 7.2.10
- 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: kprobes: Skip disarmed probes when checking optkprobe overlap On x86, an optkprobe at A replaces five bytes with a jump. If a disabled probe B is at A+2, get_optimized_kprobe() stops at B when arming a new probe C at A+4. It leaves A optimized: A A+1 A+2 A+3 A+4 A's jump | e9 | d0 | d1 | d2 | d3 | after C | e9 | d0 | d1 | d2 | cc | The INT3 for C overwrites the last byte of A's jump displacement, so execution can jump to the wrong address. B can have prepared optinsns while disarmed, but has no jump to unoptimize. Continue past disarmed and unprepared probes to find the active optimized probe before arming a probe in its jump.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
Version range not reported
- Linux Linux
2.6.34
- KernelLinux
From 2.6.34 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.113; From 6.13.0 · fixed in 6.18.56; From 6.19.0 · fixed in 7.2.10
References 8
git.kernel.org
- stable/c/e29e819cacfb4e3cd56d41eb704ab4718d6d2915
- stable/c/ab9ed9faa67bf67383ff7e1479655e232a843c2b
- stable/c/3b0f604df9e2b9a456f1ae5266a439998c4c8826
- stable/c/3f968dcdf018861129f97910fa7bd680d939a9b0
- stable/c/985a568171e7bdba6dcde3420d0e5bb515813457
- stable/c/6745fa65f4115045431c0c15610e876855a04625
- stable/c/526fac219e8b7d3369b43026bd0a1df51b811cd4
- stable/c/7a39c732a22ec4a369af9e19fbe3d666ec83eec4