CVE-2023-52476
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
29/02/2024
Last modified:
05/01/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
perf/x86/lbr: Filter vsyscall addresses<br />
<br />
We found that a panic can occur when a vsyscall is made while LBR sampling<br />
is active. If the vsyscall is interrupted (NMI) for perf sampling, this<br />
call sequence can occur (most recent at top):<br />
<br />
__insn_get_emulate_prefix()<br />
insn_get_emulate_prefix()<br />
insn_get_prefixes()<br />
insn_get_opcode()<br />
decode_branch_type()<br />
get_branch_type()<br />
intel_pmu_lbr_filter()<br />
intel_pmu_handle_irq()<br />
perf_event_nmi_handler()<br />
<br />
Within __insn_get_emulate_prefix() at frame 0, a macro is called:<br />
<br />
peek_nbyte_next(insn_byte_t, insn, i)<br />
<br />
Within this macro, this dereference occurs:<br />
<br />
(insn)->next_byte<br />
<br />
Inspecting registers at this point, the value of the next_byte field is the<br />
address of the vsyscall made, for example the location of the vsyscall<br />
version of gettimeofday() at 0xffffffffff600000. The access to an address<br />
in the vsyscall region will trigger an oops due to an unhandled page fault.<br />
<br />
To fix the bug, filtering for vsyscalls can be done when<br />
determining the branch type. This patch will return<br />
a "none" branch if a kernel address if found to lie in the<br />
vsyscall region.
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.137 (excluding) | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.59 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.5.8 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.6:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.6:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.6:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.6:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.6:rc5:*:*:*:*:*:* |
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/3863989497652488a50f00e96de4331e5efabc6c
- https://git.kernel.org/stable/c/e53899771a02f798d436655efbd9d4b46c0f9265
- https://git.kernel.org/stable/c/f71edacbd4f99c0e12fe4a4007ab4d687d0688db
- https://git.kernel.org/stable/c/3863989497652488a50f00e96de4331e5efabc6c
- https://git.kernel.org/stable/c/403d201d1fd144cb249836dafb222f6375871c6c
- https://git.kernel.org/stable/c/e53899771a02f798d436655efbd9d4b46c0f9265
- https://git.kernel.org/stable/c/f71edacbd4f99c0e12fe4a4007ab4d687d0688db



