Vulnerability · Published Apr 17, 2024 · Assigned by Linux
CVE-2024-26906x86/mm: Disallow vsyscall page read for copy_from_kernel_nofault()
Medium 5.5
In plain English
A medium-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.3% (higher than 17% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official 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().
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| AlmaLinux:8 | bpftool | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-abi-stablelists | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-core | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-cross-headers | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-debug | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-debug-core | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-debug-devel | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-debug-modules | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-debug-modules-extra | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-devel | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-doc | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-headers | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-modules | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-modules-extra | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-rt | 4.18.0-553.8.1.rt7.349.el8_10 | ALSA-2024:4352 |
| AlmaLinux:8 | kernel-rt-core | 4.18.0-553.8.1.rt7.349.el8_10 | ALSA-2024:4352 |
| AlmaLinux:8 | kernel-rt-debug | 4.18.0-553.8.1.rt7.349.el8_10 | ALSA-2024:4352 |
| AlmaLinux:8 | kernel-rt-debug-core | 4.18.0-553.8.1.rt7.349.el8_10 | ALSA-2024:4352 |
| AlmaLinux:8 | kernel-rt-debug-devel | 4.18.0-553.8.1.rt7.349.el8_10 | ALSA-2024:4352 |
| AlmaLinux:8 | kernel-rt-debug-kvm | 4.18.0-553.8.1.rt7.349.el8_10 | ALSA-2024:4352 |
| AlmaLinux:8 | kernel-rt-debug-modules | 4.18.0-553.8.1.rt7.349.el8_10 | ALSA-2024:4352 |
| AlmaLinux:8 | kernel-rt-debug-modules-extra | 4.18.0-553.8.1.rt7.349.el8_10 | ALSA-2024:4352 |
| AlmaLinux:8 | kernel-rt-devel | 4.18.0-553.8.1.rt7.349.el8_10 | ALSA-2024:4352 |
| AlmaLinux:8 | kernel-rt-kvm | 4.18.0-553.8.1.rt7.349.el8_10 | ALSA-2024:4352 |
| AlmaLinux:8 | kernel-rt-modules | 4.18.0-553.8.1.rt7.349.el8_10 | ALSA-2024:4352 |
| AlmaLinux:8 | kernel-rt-modules-extra | 4.18.0-553.8.1.rt7.349.el8_10 | ALSA-2024:4352 |
| AlmaLinux:8 | kernel-tools | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-tools-libs | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-tools-libs-devel | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-zfcpdump | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-zfcpdump-core | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-zfcpdump-devel | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-zfcpdump-modules | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | kernel-zfcpdump-modules-extra | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | perf | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| AlmaLinux:8 | python3-perf | 4.18.0-553.8.1.el8_10 | ALSA-2024:4211 |
| Debian:12 | linux | 6.1.85-1 | DEBIAN-CVE-2024-26906 |
| Debian:13 | linux | 6.7.12-1 | DEBIAN-CVE-2024-26906 |
| Debian:14 | linux | 6.7.12-1 | DEBIAN-CVE-2024-26906 |
| Rocky Linux:8 | kernel | 0:4.18.0-553.8.1.el8_10 | RLSA-2024:4211 |
| Rocky Linux:8 | kernel-rt | 0:4.18.0-553.8.1.rt7.349.el8_10 | RLSA-2024:4352 |
| Ubuntu:22.04:LTS | linux | 5.15.0-112.122 | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-allwinner-5.19 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-aws | 5.15.0-1063.69 | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-aws-5.19 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-aws-6.2 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-aws-6.5 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-azure | 5.15.0-1066.75 | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-azure-5.19 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-azure-6.2 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-azure-6.5 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-azure-fde | 5.15.0-1067.76.1 | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-azure-fde-5.19 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-azure-fde-6.2 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-gcp | 5.15.0-1062.70 | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-gcp-5.19 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-gcp-6.2 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-gcp-6.5 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-gke | 5.15.0-1060.66 | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-gkeop | 5.15.0-1046.53 | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-hwe-5.19 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-hwe-6.2 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-hwe-6.5 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-ibm | 5.15.0-1056.59 | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-intel-iotg | 5.15.0-1058.64 | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-kvm | 5.15.0-1060.65 | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-lowlatency | 5.15.0-110.120 | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-5.19 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-6.2 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-6.5 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-nvidia | 5.15.0-1058.59 | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-nvidia-6.2 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-nvidia-6.5 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-nvidia-tegra | 5.15.0-1026.26 | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-nvidia-tegra-igx | 5.15.0-1015.15 | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-oem-5.17 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-oem-6.0 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-oem-6.1 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-oem-6.5 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-oracle | 5.15.0-1061.67 | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-oracle-6.5 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-raspi | 5.15.0-1058.61 | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-realtime | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-riscv | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-riscv-5.19 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-riscv-6.5 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-starfive-5.19 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-starfive-6.2 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-starfive-6.5 | no fix listed | UBUNTU-CVE-2024-26906 |
| Ubuntu:22.04:LTS | linux-xilinx-zynqmp | 5.15.0-1030.34 | UBUNTU-CVE-2024-26906 |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | 75a1a607bb7e6d918be3aca11ec2214a275392f4 – before 6e4694e65b6db4c3de125115dd4f55848cc4838175a1a607bb7e6d918be3aca11ec2214a275392f4 – before e8a67fe34b76a49320b33032228a794f40b0316b75a1a607bb7e6d918be3aca11ec2214a275392f4 – before f175de546a3eb77614d94d4c02550181c0a8493e75a1a607bb7e6d918be3aca11ec2214a275392f4 – before 57f78c46f08198e1be08ffe99c4c1ccc12855bf575a1a607bb7e6d918be3aca11ec2214a275392f4 – before 29bd6f86904682adafe9affbc7f79b14defcaff875a1a607bb7e6d918be3aca11ec2214a275392f4 – before 32019c659ecfe1d92e3bf9fcdfbb11a7c70acd58 |
| Linux | Linux | 5.5 |
References
- https://git.kernel.org/stable/c/6e4694e65b6db4c3de125115dd4f55848cc48381
- https://git.kernel.org/stable/c/e8a67fe34b76a49320b33032228a794f40b0316b
- https://git.kernel.org/stable/c/f175de546a3eb77614d94d4c02550181c0a8493e
- https://git.kernel.org/stable/c/57f78c46f08198e1be08ffe99c4c1ccc12855bf5
- https://git.kernel.org/stable/c/29bd6f86904682adafe9affbc7f79b14defcaff8
- https://git.kernel.org/stable/c/32019c659ecfe1d92e3bf9fcdfbb11a7c70acd58
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html x_transferred
- https://cert-portal.siemens.com/productcert/html/ssa-265688.html