CVE-2024-42240
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
07/08/2024
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
x86/bhi: Avoid warning in #DB handler due to BHI mitigation<br />
<br />
When BHI mitigation is enabled, if SYSENTER is invoked with the TF flag set<br />
then entry_SYSENTER_compat() uses CLEAR_BRANCH_HISTORY and calls the<br />
clear_bhb_loop() before the TF flag is cleared. This causes the #DB handler<br />
(exc_debug_kernel()) to issue a warning because single-step is used outside the<br />
entry_SYSENTER_compat() function.<br />
<br />
To address this issue, entry_SYSENTER_compat() should use CLEAR_BRANCH_HISTORY<br />
after making sure the TF flag is cleared.<br />
<br />
The problem can be reproduced with the following sequence:<br />
<br />
$ cat sysenter_step.c<br />
int main()<br />
{ asm("pushf; pop %ax; bts $8,%ax; push %ax; popf; sysenter"); }<br />
<br />
$ gcc -o sysenter_step sysenter_step.c<br />
<br />
$ ./sysenter_step<br />
Segmentation fault (core dumped)<br />
<br />
The program is expected to crash, and the #DB handler will issue a warning.<br />
<br />
Kernel log:<br />
<br />
WARNING: CPU: 27 PID: 7000 at arch/x86/kernel/traps.c:1009 exc_debug_kernel+0xd2/0x160<br />
...<br />
RIP: 0010:exc_debug_kernel+0xd2/0x160<br />
...<br />
Call Trace:<br />
<br />
? show_regs+0x68/0x80<br />
? __warn+0x8c/0x140<br />
? exc_debug_kernel+0xd2/0x160<br />
? report_bug+0x175/0x1a0<br />
? handle_bug+0x44/0x90<br />
? exc_invalid_op+0x1c/0x70<br />
? asm_exc_invalid_op+0x1f/0x30<br />
? exc_debug_kernel+0xd2/0x160<br />
exc_debug+0x43/0x50<br />
asm_exc_debug+0x1e/0x40<br />
RIP: 0010:clear_bhb_loop+0x0/0xb0<br />
...<br />
<br />
<br />
? entry_SYSENTER_compat_after_hwframe+0x6e/0x8d<br />
<br />
<br />
[ bp: Massage commit message. ]
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.15.163 (including) | 6.1.100 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.41 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.9.10 (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/08518d48e5b744620524f0acd7c26c19bda7f513
- https://git.kernel.org/stable/c/a765679defe1dc1b8fa01928a6ad6361e72a1364
- https://git.kernel.org/stable/c/ac8b270b61d48fcc61f052097777e3b5e11591e0
- https://git.kernel.org/stable/c/dae3543db8f0cf8ac1a198c3bb4b6e3c24d576cf
- https://git.kernel.org/stable/c/db56615e96c439e13783d7715330e824b4fd4b84
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html



