KVM: s390: Take srcu when importing watchpoint data
- 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.1.188, 6.6.157, 6.12.110, 6.18.51, 7.2.5
- 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: KVM: s390: Take srcu when importing watchpoint data __import_wp_info() backs up the original guest memory contents of a watchpoint with read_guest_abs(), which is kvm_read_guest() and therefore resolves the memslot via __kvm_memslots(). That requires kvm->srcu (or kvm->slots_lock) to be held, otherwise a concurrent memslot update can free the memslots array under us once its SRCU grace period has elapsed. As this is not fast path, following lock ordering (mutex first, then srcu) take the big hammer and hold the srcu for the full import.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 27291e2165b6de70c476b7b675308113edd69a60 · fixed in 6830fbc3724bf49c142aae69a4694f115fa9cedd; From 27291e2165b6de70c476b7b675308113edd69a60 · fixed in f8e3a9997d5ecd56ebe4b262ff424516c068fecb; From 27291e2165b6de70c476b7b675308113edd69a60 · fixed in 76f5b4ea9ed0aa5a34bda9d8a878f2c73026ec03; From 27291e2165b6de70c476b7b675308113edd69a60 · fixed in cc710ee45395efb4937e042960f791d33924e5f6; From 27291e2165b6de70c476b7b675308113edd69a60 · fixed in 4c05bf21d1806853e662cc19e744736a3408f155; From 27291e2165b6de70c476b7b675308113edd69a60 · fixed in a4e482def8533ebace517d9f67f1465841b1f982
- Linux Linux
3.16
- KernelLinux
From 3.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.51; From 6.19.0 · fixed in 7.2.5