CVE-2023-52597
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
06/03/2024
Last modified:
14/03/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
KVM: s390: fix setting of fpc register<br />
<br />
kvm_arch_vcpu_ioctl_set_fpu() allows to set the floating point control<br />
(fpc) register of a guest cpu. The new value is tested for validity by<br />
temporarily loading it into the fpc register.<br />
<br />
This may lead to corruption of the fpc register of the host process:<br />
if an interrupt happens while the value is temporarily loaded into the fpc<br />
register, and within interrupt context floating point or vector registers<br />
are used, the current fp/vx registers are saved with save_fpu_regs()<br />
assuming they belong to user space and will be loaded into fp/vx registers<br />
when returning to user space.<br />
<br />
test_fp_ctl() restores the original user space / host process fpc register<br />
value, however it will be discarded, when returning to user space.<br />
<br />
In result the host process will incorrectly continue to run with the value<br />
that was supposed to be used for a guest cpu.<br />
<br />
Fix this by simply removing the test. There is another test right before<br />
the SIE context is entered which will handles invalid values.<br />
<br />
This results in a change of behaviour: invalid values will now be accepted<br />
instead of that the ioctl fails with -EINVAL. This seems to be acceptable,<br />
given that this interface is most likely not used anymore, and this is in<br />
addition the same behaviour implemented with the memory mapped interface<br />
(replace invalid values with zero) - see sync_regs() in kvm-s390.c.
Impact
Base Score 3.x
4.00
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.19.307 (excluding) | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (including) | 5.4.269 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.210 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.149 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.77 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.16 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.7.4 (excluding) |
| cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/0671f42a9c1084db10d68ac347d08dbf6689ecb3
- https://git.kernel.org/stable/c/150a3a3871490e8c454ffbac2e60abeafcecff99
- https://git.kernel.org/stable/c/2823db0010c400e4b2b12d02aa5d0d3ecb15d7c7
- https://git.kernel.org/stable/c/3a04410b0bc7e056e0843ac598825dd359246d18
- https://git.kernel.org/stable/c/5e63c9ae8055109d805aacdaf2a4fe2c3b371ba1
- https://git.kernel.org/stable/c/732a3bea7aba5b15026ea42d14953c3425cc7dc2
- https://git.kernel.org/stable/c/b988b1bb0053c0dcd26187d29ef07566a565cf55
- https://git.kernel.org/stable/c/c87d7d910775a025e230fd6359b60627e392460f
- https://git.kernel.org/stable/c/0671f42a9c1084db10d68ac347d08dbf6689ecb3
- https://git.kernel.org/stable/c/150a3a3871490e8c454ffbac2e60abeafcecff99
- https://git.kernel.org/stable/c/2823db0010c400e4b2b12d02aa5d0d3ecb15d7c7
- https://git.kernel.org/stable/c/3a04410b0bc7e056e0843ac598825dd359246d18
- https://git.kernel.org/stable/c/5e63c9ae8055109d805aacdaf2a4fe2c3b371ba1
- https://git.kernel.org/stable/c/732a3bea7aba5b15026ea42d14953c3425cc7dc2
- https://git.kernel.org/stable/c/b988b1bb0053c0dcd26187d29ef07566a565cf55
- https://git.kernel.org/stable/c/c87d7d910775a025e230fd6359b60627e392460f
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html



