Read the docs
TI-2024-35567 Aliases CVE-2024-53096GHSA-pmfq-rg8w-w57m

mm: resolve faulty mmap_region() error path behaviour

Priority LOW 36Published · Updated

Key facts

Attack vector
Local
Privileges required
Low
User interaction
None
Attack complexity
Low
Impact type
—
Confidentiality · integrity · availability
High · High · High
Fix status
Partial Red Hat: 5 fixed, 2 without a fix

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and Red Hat.

Summary

In the Linux kernel, the following vulnerability has been resolved: mm: resolve faulty mmap_region() error path behaviour The mmap_region() function is somewhat terrifying, with spaghetti-like control flow and numerous means by which issues can arise and incomplete state, memory leaks and other unpleasantness can occur. A large amount of the complexity arises from trying to handle errors late in the process of mapping a VMA, which forms the basis of recently observed issues with resource leaks and observable inconsistent state. Taking advantage of previous patches in this series we move a number of checks earlier in the code, simplifying things by moving the core of the logic into a static internal function __mmap_region(). Doing this allows us to perform a number of checks up front before we do any real work, and allows us to unwind the writable unmap check unconditionally as required and to perform a CONFIG_DEBUG_VM_MAPLE_TREE validation unconditionally also. We move a number of things here: 1. We preallocate memory for the iterator before we call the file-backed memory hook, allowing us to exit early and avoid having to perform complicated and error-prone close/free logic. We carefully free iterator state on both success and error paths. 2. The enclosing mmap_region() function handles the mapping_map_writable() logic early. Previously the logic had the mapping_map_writable() at the point of mapping a newly allocated file-backed VMA, and a matching mapping_unmap_writable() on success and error paths. We now do this unconditionally if this is a file-backed, shared writable mapping. If a driver changes the flags to eliminate VM_MAYWRITE, however doing so does not invalidate the seal check we just performed, and we in any case always decrement the counter in the wrapper. We perform a debug assert to ensure a driver does not attempt to do the opposite. 3. We also move arch_validate_flags() up into the mmap_region() function. This is only relevant on arm64 and sparc64, and the check is only meaningful for SPARC with ADI enabled. We explicitly add a warning for this arch if a driver invalidates this check, though the code ought eventually to be fixed to eliminate the need for this. With all of these measures in place, we no longer need to explicitly close the VMA on error paths, as we place all checks which might fail prior to a call to any driver mmap hook. This eliminates an entire class of errors, makes the code easier to reason about and more robust.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00339 27th percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Partial Linux (Linux): 5.10.231, 5.15.174, 5.20 +4Red Hat: 1 advisoryRed Hat: 5 fixed, 2 without a fix

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Total

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
LinuxLinux5.10.150 to before 5.10.231; 5.15.75 to before 5.15.174; 5.19.17 to before 5.20; 6.0.3 to before 6.15.10.231, 5.15.174, 5.20, 6.1Patch availableCNA
LinuxLinux6.1 and later5.10.231, 5.15.174, 6.1.119, 6.6.63, 6.12Patch availableCNA
  • Linux VendorLinux Affected 5.10.150 to before 5.10.231; 5.15.75 to before 5.15.174; 5.19.17 to before 5.20; 6.0.3 to before 6.1 Fixed in 5.10.231, 5.15.174, 5.20, 6.1 Patch available CNA
  • Linux VendorLinux Affected 6.1 and later Fixed in 5.10.231, 5.15.174, 6.1.119, 6.6.63, 6.12 Patch available CNA

CPE configurations NVD · 8

CPEVersionsRoleVendor
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*5.10.150 to before 5.10.231; 5.15.75 to before 5.15.174; 6.0.3 to before 6.1.119; 6.2 to before 6.6.63; 6.7 to before 6.12VulnerableLinux
cpe:2.3:o:linux:linux_kernel:5.19.17:*:*:*:*:*:*:*5.19.17VulnerableLinux
cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:*6.12 rc1VulnerableLinux
cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:*6.12 rc2VulnerableLinux
cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:*6.12 rc3VulnerableLinux
cpe:2.3:o:linux:linux_kernel:6.12:rc4:*:*:*:*:*:*6.12 rc4VulnerableLinux
cpe:2.3:o:linux:linux_kernel:6.12:rc5:*:*:*:*:*:*6.12 rc5VulnerableLinux
cpe:2.3:o:linux:linux_kernel:6.12:rc6:*:*:*:*:*:*6.12 rc6VulnerableLinux
  • cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* Versions 5.10.150 to before 5.10.231; 5.15.75 to before 5.15.174; 6.0.3 to before 6.1.119; 6.2 to before 6.6.63; 6.7 to before 6.12 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:5.19.17:*:*:*:*:*:*:* Versions 5.19.17 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:* Versions 6.12 rc1 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:* Versions 6.12 rc2 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:* Versions 6.12 rc3 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:6.12:rc4:*:*:*:*:*:* Versions 6.12 rc4 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:6.12:rc5:*:*:*:*:*:* Versions 6.12 rc5 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:6.12:rc6:*:*:*:*:*:* Versions 6.12 rc6 Vulnerable ·Linux

Remediation

  • Fix · CNA Linux (Linux) Fixed in 5.10.231, 5.15.174, 5.20, 6.1
  • Fix · CNA Linux (Linux) Fixed in 5.10.231, 5.15.174, 6.1.119, 6.6.63, 6.12

Red Hat 1 advisory

  • RHSA-2025:6966 Released 2025-05-13 · Red Hat rating Moderate
    kernel security update
    • Red Hat Enterprise Linux AppStream (v. 9) kernel-64k-debug-devel-5.14.0-570.12.1.el9_6, kernel-64k-debug-devel-matched-5.14.0-570.12.1.el9_6, kernel-64k-devel-5.14.0-570.12.1.el9_6 +12
    • Red Hat Enterprise Linux BaseOS (v. 9) kernel-5.14.0-570.12.1.el9_6, kernel-64k-5.14.0-570.12.1.el9_6, kernel-64k-core-5.14.0-570.12.1.el9_6 +28
    • Red Hat Enterprise Linux CodeReady Linux Builder (v. 9) kernel-tools-libs-devel-5.14.0-570.12.1.el9_6, libperf-5.14.0-570.12.1.el9_6
    • Red Hat Enterprise Linux Real Time (v. 9) kernel-rt-5.14.0-570.12.1.el9_6, kernel-rt-64k-5.14.0-570.12.1.el9_6, kernel-rt-64k-core-5.14.0-570.12.1.el9_6 +21
    • Red Hat Enterprise Linux Real Time for NFV (v. 9) kernel-rt-5.14.0-570.12.1.el9_6, kernel-rt-core-5.14.0-570.12.1.el9_6, kernel-rt-debug-5.14.0-570.12.1.el9_6 +11

Vendor assessments

Red Hat

Red Hat rating: Moderate. Red Hat's page for this CVE →

ProductStatusPlan or fix
Red Hat Enterprise Linux 6AffectedNo fix planned: Out of support scope
Red Hat Enterprise Linux 7AffectedNo fix planned: Out of support scope
Red Hat Enterprise Linux AppStream (v. 9)Fixed RHSA-2025:6966
Red Hat Enterprise Linux BaseOS (v. 9)Fixed RHSA-2025:6966
Red Hat Enterprise Linux CodeReady Linux Builder (v. 9)Fixed RHSA-2025:6966
Red Hat Enterprise Linux Real Time (v. 9)Fixed RHSA-2025:6966
Red Hat Enterprise Linux Real Time for NFV (v. 9)Fixed RHSA-2025:6966
Not affected: 1 product
  • Red Hat Enterprise Linux 8

Timeline

  1. 2026-10-02 Threatist record created from CVE-2024-53096
  2. 2026-10-03 Alias added: GHSA-pmfq-rg8w-w57m
  3. 2026-10-29 Affected versions changed · Red Hat

References

  • TI-2025-26358 tls: fix handling of zero-length records on the rx_list KEVCVSS 3.1CRITICAL 9.8
  • TI-2026-38352 netfilter: bridge: make ebt_snat ARP rewrite writable KEVCVSS 3.1HIGH 8.8
  • TI-2013-05264 The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the… KEVCVSS 3.1HIGH 8.8
  • TI-2022-00125 Integer overflow in kernel KEVCVSS 3.1HIGH 8.4
  • TI-2013-01864 The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9… KEVCVSS 3.1HIGH 8.4
  • TI-2021-05514 Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACE KEVCVSS 3.1HIGH 8.3
See all 15278 →

Sources