CVE-2024-26603
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
26/02/2024
Last modified:
17/04/2024
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
x86/fpu: Stop relying on userspace for info to fault in xsave buffer<br />
<br />
Before this change, the expected size of the user space buffer was<br />
taken from fx_sw->xstate_size. fx_sw->xstate_size can be changed<br />
from user-space, so it is possible construct a sigreturn frame where:<br />
<br />
* fx_sw->xstate_size is smaller than the size required by valid bits in<br />
fx_sw->xfeatures.<br />
* user-space unmaps parts of the sigrame fpu buffer so that not all of<br />
the buffer required by xrstor is accessible.<br />
<br />
In this case, xrstor tries to restore and accesses the unmapped area<br />
which results in a fault. But fault_in_readable succeeds because buf +<br />
fx_sw->xstate_size is within the still mapped area, so it goes back and<br />
tries xrstor again. It will spin in this loop forever.<br />
<br />
Instead, fault in the maximum size which can be touched by XRSTOR (taken<br />
from fpstate->user_size).<br />
<br />
[ dhansen: tweak subject / changelog ]
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
CPE | From | Up to |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.14.0 (including) | 5.15.150 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16.0 (including) | 6.1.79 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2.0 (including) | 6.6.18 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7.0 (including) | 6.7.6 (excluding) |
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/627339cccdc9166792ecf96bc3c9f711a60ce996
- https://git.kernel.org/stable/c/627e28cbb65564e55008315d9e02fbb90478beda
- https://git.kernel.org/stable/c/8bd3eee7720c14b59a206bd05b98d7586bccf99a
- https://git.kernel.org/stable/c/b2479ab426cef7ab79a13005650eff956223ced2
- https://git.kernel.org/stable/c/d877550eaf2dc9090d782864c96939397a3c6835