In the Linux kernel, the following vulnerability has been resolved:
arm64: ptrace: fix partial SETREGSET for NT_ARM_FPMR
Currently fpmr_set() doesn't initialize the temporary 'fpmr' variable, and a SETREGSET call with a length of zero will leave this uninitialized. Consequently an arbitrary value will be written back to target->thread.uw.fpmr, potentially leaking up to 64 bits of memory from the kernel stack. The read is limited to a specific slot on the stack, and the issue does not provide a write mechanism.
Fix this by initializing the temporary value before copying the regset from userspace, as for other regsets (e.g. NT_PRSTATUS, NT_PRFPREG, NT_ARM_SYSTEM_CALL). In the case of a zero-length write, the existing contents of FPMR will be retained.
Before this patch:
| # ./fpmr-test | Attempting to write NT_ARM_FPMR::fpmr = 0x900d900d900d900d | SETREGSET(nt=0x40e, len=8) wrote 8 bytes | | Attempting to read NT_ARM_FPMR::fpmr | GETREGSET(nt=0x40e, len=8) read 8 bytes | Read NT_ARM_FPMR::fpmr = 0x900d900d900d900d | | Attempting to write NT_ARM_FPMR (zero length) | SETREGSET(nt=0x40e, len=0) wrote 0 bytes | | Attempting to read NT_ARM_FPMR::fpmr | GETREGSET(nt=0x40e, len=8) read 8 bytes | Read NT_ARM_FPMR::fpmr = 0xffff800083963d50
After this patch:
| # ./fpmr-test | Attempting to write NT_ARM_FPMR::fpmr = 0x900d900d900d900d | SETREGSET(nt=0x40e, len=8) wrote 8 bytes | | Attempting to read NT_ARM_FPMR::fpmr | GETREGSET(nt=0x40e, len=8) read 8 bytes | Read NT_ARM_FPMR::fpmr = 0x900d900d900d900d | | Attempting to write NT_ARM_FPMR (zero length) | SETREGSET(nt=0x40e, len=0) wrote 0 bytes | | Attempting to read NT_ARM_FPMR::fpmr | GETREGSET(nt=0x40e, len=8) read 8 bytes | Read NT_ARM_FPMR::fpmr = 0x900d900d900d900d
CVSS Details
- CVSS 3.1 Base Score: 6.1
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jul 27, 2026 | Jul 27, 2026 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | Jan 11, 2025 |
| Ubuntu | — | Upgrade linux-image-lowlatency-64kUpgrade linux-image-gcp-64kUpgrade linux-image-6.11.0-1011-awsUpgrade linux-image-6.11.0-1011-lowlatencyUpgrade linux-image-6.11.0-1012-azureUpgrade linux-image-azure-fdeUpgrade linux-image-6.11.0-1011-gcp-64kUpgrade linux-image-6.11.0-1017-oemUpgrade linux-image-6.11.0-1012-azure-fdeUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-6.11.0-1007-realtimeUpgrade linux-image-6.11.0-1013-oracleUpgrade linux-image-awsUpgrade linux-image-genericUpgrade linux-image-6.11.0-21-genericUpgrade linux-image-6.11.0-1010-raspiUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.11.0-21-generic-64kUpgrade linux-image-azureUpgrade linux-image-6.11.0-1011-gcpUpgrade linux-image-generic-64kUpgrade linux-image-raspiUpgrade linux-image-oem-24.04Upgrade linux-image-virtualUpgrade linux-image-realtimeUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-oracleUpgrade linux-image-oem-24.04bUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.11.0-1011-lowlatency-64kUpgrade linux-image-6.11.0-1013-oracle-64kUpgrade linux-image-oem-24.04aUpgrade linux-image-gcpUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-oracle-64kUpgrade linux-image-lowlatencyUpgrade linux-image-generic-hwe-24.04 | Mar 28, 2025 | Jan 11, 2025 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub