CVE-2026-89923
N/A
Summary
In the Linux kernel, the following vulnerability has been resolved:
KVM: s390: Free guest debug data on vcpu destroy
kvm_s390_clear_bp_data() is only called from kvm_arch_vcpu_ioctl_set_guest_debug(), i.e. when user space changes or disables debugging. A vCPU that is destroyed while hardware breakpoints are still armed - the normal case when the VMM just exits or crashes - leaks hw_bp_info, hw_wp_info and all old_data buffers, since generic KVM frees the vCPU right after kvm_arch_vcpu_destroy().
That is bounded by MAX_BP_COUNT entries, so roughly 8 KiB per vCPU, but it is unbounded over VM lifetimes. The allocations are GFP_KERNEL_ACCOUNT, so the charge also outlives the exiting process and pins dying memcgs.
Fix by clearing the debug data on vCPU destruction. Calling it unconditionally is fine: struct kvm_vcpu is zero allocated, so for a vCPU that never enabled debugging the counters are 0 and the pointers NULL.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 27291e2165b6de70c476b7b675308113edd69a60 < 053f2068cf9b0654b651fed5ad7649d3deb982bf | affected |
| Linux | Linux | 27291e2165b6de70c476b7b675308113edd69a60 < 6c996b12bbe4a6023076e8eee3cfaf2cc99db76c | affected |
| Linux | Linux | 27291e2165b6de70c476b7b675308113edd69a60 < d6280fc540d8f4653c9b54a78cb747e128070f5e | affected |
| Linux | Linux | 27291e2165b6de70c476b7b675308113edd69a60 < 544a5a665019cef394ce8bda97fa7a2cab253781 | affected |
| Linux | Linux | 27291e2165b6de70c476b7b675308113edd69a60 < 9a32c4c6a6c23b7f5bf765eb5b83ba7f64a8ec63 | affected |
| Linux | Linux | 27291e2165b6de70c476b7b675308113edd69a60 < b5acacfdb8966abff91836c1c5bd7da59d8a526e | affected |
| Linux | Linux | 27291e2165b6de70c476b7b675308113edd69a60 < e4d8b7f176b976474e0800ba71ee2dfa3ce263c9 | affected |
| Linux | Linux | 27291e2165b6de70c476b7b675308113edd69a60 < e7f698b09d4a7c36b299acf680fc50fe868e2bcd | affected |
| Linux | Linux | 3.16 | affected |
| Linux | Linux | 0 < 3.16 | unaffected |
| Linux | Linux | 5.10.270 <= 5.10.* | unaffected |
| Linux | Linux | 5.15.221 <= 5.15.* | unaffected |
| Linux | Linux | 6.1.188 <= 6.1.* | unaffected |
| Linux | Linux | 6.6.157 <= 6.6.* | unaffected |
| Linux | Linux | 6.12.110 <= 6.12.* | unaffected |
| Linux | Linux | 6.18.51 <= 6.18.* | unaffected |
| Linux | Linux | 7.2.5 <= 7.2.* | unaffected |
| Linux | Linux | 7.3-rc1 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/053f2068cf9b0654b651fed5ad7649d3deb982bf
- https://git.kernel.org/stable/c/6c996b12bbe4a6023076e8eee3cfaf2cc99db76c
- https://git.kernel.org/stable/c/d6280fc540d8f4653c9b54a78cb747e128070f5e
- https://git.kernel.org/stable/c/544a5a665019cef394ce8bda97fa7a2cab253781
- https://git.kernel.org/stable/c/9a32c4c6a6c23b7f5bf765eb5b83ba7f64a8ec63
- https://git.kernel.org/stable/c/b5acacfdb8966abff91836c1c5bd7da59d8a526e
- https://git.kernel.org/stable/c/e4d8b7f176b976474e0800ba71ee2dfa3ce263c9
- https://git.kernel.org/stable/c/e7f698b09d4a7c36b299acf680fc50fe868e2bcd
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.