Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2024-53096— mm: resolve faulty mmap_region() error path behaviour

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于mmap_region函数的复杂性,导致控制流程混乱和多种问题产生,包括状态不完整、内存泄漏等问题。

CVSS 7.8 · High EPSS 0.34% · P26

Possible ATT&CK Techniques 1 AI

T1562

Affected Version Matrix 18

VendorProduct Version RangeStatus
Linux Linux a3c08c021778dad30f69895e378843e9f423d734< 43323a4e5b3f8ccc08e2f835abfdc7ee9da8f6ed affected
43bed0a13a5cdbb314d14f28c2bf2c60eb4e6e1e< 44f48eb9a6051826227bbd375446064fb2a43c6c affected
deb0f6562884b5b4beb883d73e66a7d3a1b96d99< 52c81fd0f5a8bf8032687b94ccf00d13b44cc5c8 affected
deb0f6562884b5b4beb883d73e66a7d3a1b96d99< bdc136e2b05fabcd780fe5f165d154eb779dfcb0 affected
deb0f6562884b5b4beb883d73e66a7d3a1b96d99< 5de195060b2e251a835f622759550e6202167641 affected
6757330b1be5b0606125b65ed50caac69bccf9a5 affected
66f2ed0172af04a89677ae1898600e1264e25800 affected
5.10.150< 5.10.231 affected
… +10 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2024-53096

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
mm: resolve faulty mmap_region() error path behaviour
Source: CVE Program / CVE List V5
Vulnerability Description
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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于mmap_region函数的复杂性,导致控制流程混乱和多种问题产生,包括状态不完整、内存泄漏等问题。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux a3c08c021778dad30f69895e378843e9f423d734 ~ 43323a4e5b3f8ccc08e2f835abfdc7ee9da8f6ed -
Linux Linux 6.1 -

II. Public POCs for CVE-2024-53096

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-53096

请登录查看更多情报信息。

Patches & Fixes for CVE-2024-53096 (5)

Proof of Concept for CVE-2024-53096 (1)

Same Patch Batch · Linux · 2024-11-25 · 6 CVEs total

CVE-2024-53100 7.8 HIGH nvme: tcp: avoid race between queue_lock lock and destroy
CVE-2024-53099 7.1 HIGH bpf: Check validity of link->type in bpf_link_show_fdinfo()
CVE-2024-53097 mm: krealloc: Fix MTE false alarm in __do_krealloc
CVE-2024-53098 drm/xe/ufence: Prefetch ufence addr to catch bogus address
CVE-2024-53101 fs: Fix uninitialized value issue in from_kuid and from_kgid

IV. Related Vulnerabilities

V. Comments for CVE-2024-53096

No comments yet


Leave a comment