x86/mm: Disallow vsyscall page read for copy_from_kernel_nofault()
Summary
| CVE | CVE-2024-26906 |
|---|---|
| State | PUBLISHED |
| Assigner | Linux |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2024-04-17 11:15:11 UTC |
| Updated | 2026-05-12 12:16:25 UTC |
| Description | In the Linux kernel, the following vulnerability has been resolved: x86/mm: Disallow vsyscall page read for copy_from_kernel_nofault() When trying to use copy_from_kernel_nofault() to read vsyscall page through a bpf program, the following oops was reported: BUG: unable to handle page fault for address: ffffffffff600000 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 3231067 P4D 3231067 PUD 3233067 PMD 3235067 PTE 0 Oops: 0000 [#1] PREEMPT SMP PTI CPU: 1 PID: 20390 Comm: test_progs ...... 6.7.0+ #58 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996) ...... RIP: 0010:copy_from_kernel_nofault+0x6f/0x110 ...... Call Trace: <TASK> ? copy_from_kernel_nofault+0x6f/0x110 bpf_probe_read_kernel+0x1d/0x50 bpf_prog_2061065e56845f08_do_probe_read+0x51/0x8d trace_call_bpf+0xc5/0x1c0 perf_call_bpf_enter.isra.0+0x69/0xb0 perf_syscall_enter+0x13e/0x200 syscall_trace_enter+0x188/0x1c0 do_syscall_64+0xb5/0xe0 entry_SYSCALL_64_after_hwframe+0x6e/0x76 </TASK> ...... ---[ end trace 0000000000000000 ]--- The oops is triggered when: 1) A bpf program uses bpf_probe_read_kernel() to read from the vsyscall page and invokes copy_from_kernel_nofault() which in turn calls __get_user_asm(). 2) Because the vsyscall page address is not readable from kernel space, a page fault exception is triggered accordingly. 3) handle_page_fault() considers the vsyscall page address as a user space address instead of a kernel space address. This results in the fix-up setup by bpf not being applied and a page_fault_oops() is invoked due to SMAP. Considering handle_page_fault() has already considered the vsyscall page address as a userspace address, fix the problem by disallowing vsyscall page read for copy_from_kernel_nofault(). |
Risk And Classification
Primary CVSS: v3.1 5.5 MEDIUM from [email protected]
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Problem Types: NVD-CWE-noinfo
CVSS v3.1 Breakdown
Attack Vector
LocalAttack Complexity
LowPrivileges Required
LowUser Interaction
NoneScope
UnchangedConfidentiality
NoneIntegrity
NoneAvailability
HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
NVD Known Affected Configurations (CPE 2.3)
| Type | Vendor | Product | Version | Update | Edition | Language |
|---|---|---|---|---|---|---|
| Operating System | Linux | Linux Kernel | All | All | All | All |
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|---|---|---|---|
| CNA | Linux | Linux | affected 75a1a607bb7e6d918be3aca11ec2214a275392f4 6e4694e65b6db4c3de125115dd4f55848cc48381 git | Not specified |
| CNA | Linux | Linux | affected 75a1a607bb7e6d918be3aca11ec2214a275392f4 e8a67fe34b76a49320b33032228a794f40b0316b git | Not specified |
| CNA | Linux | Linux | affected 75a1a607bb7e6d918be3aca11ec2214a275392f4 f175de546a3eb77614d94d4c02550181c0a8493e git | Not specified |
| CNA | Linux | Linux | affected 75a1a607bb7e6d918be3aca11ec2214a275392f4 57f78c46f08198e1be08ffe99c4c1ccc12855bf5 git | Not specified |
| CNA | Linux | Linux | affected 75a1a607bb7e6d918be3aca11ec2214a275392f4 29bd6f86904682adafe9affbc7f79b14defcaff8 git | Not specified |
| CNA | Linux | Linux | affected 75a1a607bb7e6d918be3aca11ec2214a275392f4 32019c659ecfe1d92e3bf9fcdfbb11a7c70acd58 git | Not specified |
| CNA | Linux | Linux | affected 5.5 | Not specified |
| CNA | Linux | Linux | unaffected 5.5 semver | Not specified |
| CNA | Linux | Linux | unaffected 5.10.214 5.10.* semver | Not specified |
| CNA | Linux | Linux | unaffected 5.15.153 5.15.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.1.83 6.1.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.6.23 6.6.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.7.11 6.7.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.8 * original_commit_for_fix | Not specified |
| ADP | Siemens | SIMATIC S7-1500 TM MFP - GNU/Linux Subsystem | affected * custom | Not specified |
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| git.kernel.org/stable/c/f175de546a3eb77614d94d4c02550181c0a8493e | af854a3a-2127-422b-91ae-364da2661108 | git.kernel.org | Patch |
| lists.debian.org/debian-lts-announce/2024/06/msg00017.html | af854a3a-2127-422b-91ae-364da2661108 | lists.debian.org | Third Party Advisory |
| cert-portal.siemens.com/productcert/html/ssa-265688.html | 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e | cert-portal.siemens.com | |
| git.kernel.org/stable/c/29bd6f86904682adafe9affbc7f79b14defcaff8 | af854a3a-2127-422b-91ae-364da2661108 | git.kernel.org | Patch |
| git.kernel.org/stable/c/6e4694e65b6db4c3de125115dd4f55848cc48381 | af854a3a-2127-422b-91ae-364da2661108 | git.kernel.org | Patch |
| git.kernel.org/stable/c/57f78c46f08198e1be08ffe99c4c1ccc12855bf5 | af854a3a-2127-422b-91ae-364da2661108 | git.kernel.org | Patch |
| git.kernel.org/stable/c/32019c659ecfe1d92e3bf9fcdfbb11a7c70acd58 | af854a3a-2127-422b-91ae-364da2661108 | git.kernel.org | Patch |
| git.kernel.org/stable/c/e8a67fe34b76a49320b33032228a794f40b0316b | af854a3a-2127-422b-91ae-364da2661108 | git.kernel.org | Patch |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
No vendor comments have been submitted for this CVE.
There are currently no legacy QID mappings associated with this CVE.