Description
In the Linux kernel, the following vulnerability has been resolved:
x86/mce: use is_copy_from_user() to determine copy-from-user context
Patch series "mm/hwpoison: Fix regressions in memory failure handling",
v4.
## 1. What am I trying to do:
This patchset resolves two critical regressions related to memory failure
handling that have appeared in the upstream kernel since version 5.17, as
compared to 5.10 LTS.
- copyin case: poison found in user page while kernel copying from user space
- instr case: poison found while instruction fetching in user space
## 2. What is the expected outcome and why
- For copyin case:
Kernel can recover from poison found where kernel is doing get_user() or
copy_from_user() if those places get an error return and the kernel return
-EFAULT to the process instead of crashing. More specifily, MCE handler
checks the fixup handler type to decide whether an in kernel #MC can be
recovered. When EX_TYPE_UACCESS is found, the PC jumps to recovery code
specified in _ASM_EXTABLE_FAULT() and return a -EFAULT to user space.
- For instr case:
If a poison found while instruction fetching in user space, full recovery
is possible. User process takes #PF, Linux allocates a new page and fills
by reading from storage.
## 3. What actually happens and why
- For copyin case: kernel panic since v5.17
Commit 4c132d1d844a ("x86/futex: Remove .fixup usage") introduced a new
extable fixup type, EX_TYPE_EFAULT_REG, and later patches updated the
extable fixup type for copy-from-user operations, changing it from
EX_TYPE_UACCESS to EX_TYPE_EFAULT_REG. It breaks previous EX_TYPE_UACCESS
handling when posion found in get_user() or copy_from_user().
- For instr case: user process is killed by a SIGBUS signal due to #CMCI
and #MCE race
When an uncorrected memory error is consumed there is a race between the
CMCI from the memory controller reporting an uncorrected error with a UCNA
signature, and the core reporting and SRAR signature machine check when
the data is about to be consumed.
### Background: why *UN*corrected errors tied to *C*MCI in Intel platform [1]
Prior to Icelake memory controllers reported patrol scrub events that
detected a previously unseen uncorrected error in memory by signaling a
broadcast machine check with an SRAO (Software Recoverable Action
Optional) signature in the machine check bank. This was overkill because
it's not an urgent problem that no core is on the verge of consuming that
bad data. It's also found that multi SRAO UCE may cause nested MCE
interrupts and finally become an IERR.
Hence, Intel downgrades the machine check bank signature of patrol scrub
from SRAO to UCNA (Uncorrected, No Action required), and signal changed to
#CMCI. Just to add to the confusion, Linux does take an action (in
uc_decode_notifier()) to try to offline the page despite the UC*NA*
signature name.
### Background: why #CMCI and #MCE race when poison is consuming in
Intel platform [1]
Having decided that CMCI/UCNA is the best action for patrol scrub errors,
the memory controller uses it for reads too. But the memory controller is
executing asynchronously from the core, and can't tell the difference
between a "real" read and a speculative read. So it will do CMCI/UCNA if
an error is found in any read.
Thus:
1) Core is clever and thinks address A is needed soon, issues a
speculative read.
2) Core finds it is going to use address A soon after sending the read
request
3) The CMCI from the memory controller is in a race with MCE from the
core that will soon try to retire the load from address A.
Quite often (because speculation has got better) the CMCI from the memory
controller is delivered before the core is committed to the instruction
reading address A, so the interrupt is taken, and Linux offlines the page
(marking it as poison).
## Why user process is killed for instr case
Commit 046545a661af ("mm/hwpoison: fix error page recovered but reported
"not
---truncated---
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 5.15.58 – < 5.16, 5.17 | 5.16 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 6.12.25-1 | — |
| Debian 13 | linux | 6.12.25-1 | — |
| Debian 12 | linux | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Nvidia-BlueField 24.04 LTS | linux-bluefield | 6.8.0-1016.20 | — |
| Ubuntu Nvidia-BlueField 22.04 LTS | linux-bluefield | No fix yet | — |
| Ubuntu 25.10 | linux-azure-fde | No fix yet | — |
| Ubuntu 25.04 | linux | 6.14.0-22.22 | USN-7594-1 |
| Ubuntu 25.04 | linux-aws +3 | 6.14.0-1007.7 | USN-7594-3, USN-7594-2, USN-7594-1 |
| Ubuntu 25.04 | linux-gcp | 6.14.0-1008.8 | USN-7594-1 |
| Ubuntu 25.04 | linux-realtime | 6.14.0-1004.4 | USN-7594-1 |
| Ubuntu 24.04 LTS | linux | 6.8.0-100.100 | USN-8028-1 |
| Ubuntu 24.04 LTS | linux-aws +1 | 6.8.0-1046.49 | USN-8028-5 |
| Ubuntu 24.04 LTS | linux-azure | 6.8.0-1046.52 | USN-8074-1 |
| Ubuntu 24.04 LTS | linux-azure-6.11 | 6.11.0-1018.18~24.04.1 | USN-7628-1 |
| Ubuntu 24.04 LTS | linux-azure-fde | 6.8.0-1046.53 | — |
| Ubuntu 24.04 LTS | linux-azure-nvidia | 6.8.0-1039.42 | — |
| Ubuntu 24.04 LTS | linux-gcp | 6.8.0-1047.50 | USN-8031-3 |
| Ubuntu 24.04 LTS | linux-gcp-6.11 | 6.11.0-1016.16~24.04.1 | USN-7605-1 |
| Ubuntu 24.04 LTS | linux-gke | 6.8.0-1043.48 | USN-8031-3 |
| Ubuntu 24.04 LTS | linux-gkeop | 6.8.0-1030.33 | USN-8028-5 |
| Ubuntu 24.04 LTS | linux-hwe-6.11 | 6.11.0-28.28~24.04.1 | USN-7605-1 |
| Ubuntu 24.04 LTS | linux-ibm | 6.8.0-1044.44 | USN-8028-8 |
| Ubuntu 24.04 LTS | linux-intel +4 | No fix yet | — |
| Ubuntu 24.04 LTS | linux-lowlatency | 6.8.0-100.100.1 | USN-8052-1 |
| Ubuntu 24.04 LTS | linux-lowlatency-hwe-6.11 | 6.11.0-1015.16~24.04.2 | USN-7605-2 |
| Ubuntu 24.04 LTS | linux-nvidia-6.11 | 6.11.0-1012.12 | — |
| Ubuntu 24.04 LTS | linux-nvidia-lowlatency | 6.8.0-1046.49.1 | USN-8028-7 |
| Ubuntu 24.04 LTS | linux-nvidia-tegra | 6.8.0-1020.20 | — |
| Ubuntu 24.04 LTS | linux-oem-6.11 | 6.11.0-1024.24 | USN-7606-1 |
| Ubuntu 24.04 LTS | linux-oracle | 6.8.0-1043.44 | USN-8028-5 |
| Ubuntu 24.04 LTS | linux-raspi | 6.8.0-1047.51 | USN-8028-1 |
| Ubuntu 24.04 LTS | linux-xilinx | 6.8.0-1023.24 | USN-8052-2 |
Show 10 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 22.04 LTS | linux +49 | No fix yet | — |
| Ubuntu 22.04 LTS | linux-aws-6.8 +1 | 6.8.0-1046.49~22.04.1 | USN-8028-5 |
| Ubuntu 22.04 LTS | linux-azure-6.8 | 6.8.0-1051.57~22.04.1 | USN-8126-1 |
| Ubuntu 22.04 LTS | linux-azure-fde-6.8 | 6.8.0-1046.53~22.04.1 | — |
| Ubuntu 22.04 LTS | linux-gcp-6.8 | 6.8.0-1047.50~22.04.2 | USN-8031-1 |
| Ubuntu 22.04 LTS | linux-hwe-6.8 +1 | 6.8.0-100.100~22.04.1 | USN-8028-6 |
| Ubuntu 22.04 LTS | linux-ibm-6.8 | 6.8.0-1044.44~22.04.1 | USN-8028-8 |
| Ubuntu 22.04 LTS | linux-lowlatency-hwe-6.8 | 6.8.0-100.100.1~22.04.1 | USN-8028-6 |
| Ubuntu 22.04 LTS | linux-oracle-6.8 | 6.8.0-1043.44~22.04.1 | USN-8028-5 |
| Ubuntu 20.04 LTS | linux-gke +28 | No fix yet | — |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
| Ubuntu Pro Realtime 24.04 LTS | linux-raspi-realtime | 6.8.0-2037.38 | USN-8028-3 |
| Ubuntu Pro Realtime 24.04 LTS | linux-realtime | 6.8.1-1041.42 | USN-8028-3 |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime +1 | No fix yet | — |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime-6.8 | 6.8.1-1041.42~22.04.1 | USN-8028-2 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-aws-fips | 6.8.0-1046.49+fips1 | USN-8028-4 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-azure-fips | 6.8.0-1046.52+fips1 | USN-8074-2 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-fips | 6.8.0-100.100+fips1 | USN-8028-4 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-gcp-fips | 6.8.0-1047.50+fips1 | USN-8031-2 |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-preview 22.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro 20.04 LTS | linux-aws-5.15 +10 | No fix yet | — |
Amazon Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Amazon Linux 2023 | bpftool +14 | 6.12.23-29.97.amzn2023 | ALAS2023-2025-948 |
| Amazon Linux 2023 | kernel-livepatch-6.12.23-29.97 | 1.0-0.amzn2023 | ALAS2023-2025-948 |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 2 (CBL-Mariner) | kernel | No fix yet | — |
Oracle Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Oracle Linux 9 | kernel-uek +34 | 6.12.0-101.33.4.3.el10uek | ELSA-2025-20530, ELSA-2025-20480 |
Advisories 27
- WID-SEC-2025-0861 Linux Kernel: Mehrere Schwachstellen BSI CERT-Bund (WID) · Nov 12, 2026
- USN-8028-5 linux-aws, linux-aws-6.8, linux-gkeop, linux-nvidia, linux-nvidia-6.8, linux-oracle, linux-oracle-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8126-1 linux-azure-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-8 linux-ibm, linux-ibm-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-6 linux-hwe-6.8, linux-lowlatency-hwe-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8052-1 linux-lowlatency vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8052-2 linux-xilinx vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8074-1 linux-azure vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8074-2 linux-azure-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8031-3 linux-gcp, linux-gke vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-1 linux, linux-raspi vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-4 linux-aws-fips, linux-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-3 linux-realtime, linux-raspi-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-2 linux-realtime-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-7 linux-nvidia-lowlatency vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8031-2 linux-gcp-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8031-1 linux-gcp-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7628-1 linux-azure, linux-azure-6.11 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7605-1 linux, linux-aws, linux-gcp, linux-gcp-6.11, linux-hwe-6.11, linux-oracle, linux-raspi, linux-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7605-2 linux-lowlatency, linux-lowlatency-hwe-6.11 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7606-1 linux-oem-6.11 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7594-2 linux-azure vulnerabilities Ubuntu Security Notices (USN) · Feb 4, 2026
- USN-7594-1 linux, linux-gcp, linux-raspi, linux-realtime vulnerabilities Ubuntu Security Notices (USN) · Feb 4, 2026
- USN-7594-3 linux-aws, linux-oracle vulnerabilities Ubuntu Security Notices (USN) · Feb 4, 2026
- ELSA-2025-20530 Important: Unbreakable Enterprise kernel security update (Oracle Linux 9) Oracle Linux Security Advisories (ELSA) · Aug 18, 2025
- ALAS2023-2025-948 Important: kernel6.12 security update (Amazon Linux 2023) Amazon Linux Security Center (ALAS) · Jul 29, 2025
- ELSA-2025-20480 Important: Unbreakable Enterprise kernel security update (Oracle Linux 9) Oracle Linux Security Advisories (ELSA) · Jul 17, 2025
References
- https://git.kernel.org/stable/c/7a1168257e81954fa1b5b1ce86f47d2567e734ab
- https://git.kernel.org/stable/c/5724654a084f701dc64b08d34a0e800f22f0e6e4
- https://git.kernel.org/stable/c/3e3d8169c0950a0b3cd5105f6403a78350dcac80
- https://git.kernel.org/stable/c/449413da90a337f343cc5a73070cbd68e92e8a54
- https://git.kernel.org/stable/c/0b8388e97ba6a8c033f9a8b5565af41af07f9345
- https://git.kernel.org/stable/c/1a15bb8303b6b104e78028b6c68f76a0d4562134