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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2024-53079— mm/thp: fix deferred split unqueue naming and locking

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存在安全漏洞,该漏洞源于存在延迟分割队列命名和锁定问题。

CVSS 7.8 · High EPSS 0.18% · P7

Possible ATT&CK Techniques 1 AI

T1055 · Process Injection

Affected Version Matrix 8

VendorProduct Version RangeStatus
Linux Linux 87eaceb3faa59b9b4d940ec9554ce251325d83fe< fc4951c3e3358dd82ea508e893695b916c813f17 affected
87eaceb3faa59b9b4d940ec9554ce251325d83fe< afb1352d06b1b6b2cfd1f901c766a430c87078b3 affected
87eaceb3faa59b9b4d940ec9554ce251325d83fe< f8f931bba0f92052cf842b7e30917b1afcc77d5a affected
5.4 affected
< 5.4 unaffected
6.6.62≤ 6.6.* unaffected
6.11.8≤ 6.11.* unaffected
6.12≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2024-53079

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/thp: fix deferred split unqueue naming and locking
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: mm/thp: fix deferred split unqueue naming and locking Recent changes are putting more pressure on THP deferred split queues: under load revealing long-standing races, causing list_del corruptions, "Bad page state"s and worse (I keep BUGs in both of those, so usually don't get to see how badly they end up without). The relevant recent changes being 6.8's mTHP, 6.10's mTHP swapout, and 6.12's mTHP swapin, improved swap allocation, and underused THP splitting. Before fixing locking: rename misleading folio_undo_large_rmappable(), which does not undo large_rmappable, to folio_unqueue_deferred_split(), which is what it does. But that and its out-of-line __callee are mm internals of very limited usability: add comment and WARN_ON_ONCEs to check usage; and return a bool to say if a deferred split was unqueued, which can then be used in WARN_ON_ONCEs around safety checks (sparing callers the arcane conditionals in __folio_unqueue_deferred_split()). Just omit the folio_unqueue_deferred_split() from free_unref_folios(), all of whose callers now call it beforehand (and if any forget then bad_page() will tell) - except for its caller put_pages_list(), which itself no longer has any callers (and will be deleted separately). Swapout: mem_cgroup_swapout() has been resetting folio->memcg_data 0 without checking and unqueueing a THP folio from deferred split list; which is unfortunate, since the split_queue_lock depends on the memcg (when memcg is enabled); so swapout has been unqueueing such THPs later, when freeing the folio, using the pgdat's lock instead: potentially corrupting the memcg's list. __remove_mapping() has frozen refcount to 0 here, so no problem with calling folio_unqueue_deferred_split() before resetting memcg_data. That goes back to 5.4 commit 87eaceb3faa5 ("mm: thp: make deferred split shrinker memcg aware"): which included a check on swapcache before adding to deferred queue, but no check on deferred queue before adding THP to swapcache. That worked fine with the usual sequence of events in reclaim (though there were a couple of rare ways in which a THP on deferred queue could have been swapped out), but 6.12 commit dafff3f4c850 ("mm: split underused THPs") avoids splitting underused THPs in reclaim, which makes swapcache THPs on deferred queue commonplace. Keep the check on swapcache before adding to deferred queue? Yes: it is no longer essential, but preserves the existing behaviour, and is likely to be a worthwhile optimization (vmstat showed much more traffic on the queue under swapping load if the check was removed); update its comment. Memcg-v1 move (deprecated): mem_cgroup_move_account() has been changing folio->memcg_data without checking and unqueueing a THP folio from the deferred list, sometimes corrupting "from" memcg's list, like swapout. Refcount is non-zero here, so folio_unqueue_deferred_split() can only be used in a WARN_ON_ONCE to validate the fix, which must be done earlier: mem_cgroup_move_charge_pte_range() first try to split the THP (splitting of course unqueues), or skip it if that fails. Not ideal, but moving charge has been requested, and khugepaged should repair the THP later: nobody wants new custom unqueueing code just for this deprecated case. The 87eaceb3faa5 commit did have the code to move from one deferred list to another (but was not conscious of its unsafety while refcount non-0); but that was removed by 5.6 commit fac0516b5534 ("mm: thp: don't need care deferred split queue in memcg charge move path"), which argued that the existence of a PMD mapping guarantees that the THP cannot be on a deferred list. As above, false in rare cases, and now commonly false. Backport to 6.11 should be straightforward. Earlier backports must take care that other _deferred_list fixes and dependencies are included. There is not a strong case for backports, but they can fix cornercases.
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存在安全漏洞,该漏洞源于存在延迟分割队列命名和锁定问题。
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 87eaceb3faa59b9b4d940ec9554ce251325d83fe ~ fc4951c3e3358dd82ea508e893695b916c813f17 -
Linux Linux 5.4 -

II. Public POCs for CVE-2024-53079

# 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-53079

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

Patches & Fixes for CVE-2024-53079 (3)

Same Patch Batch · Linux · 2024-11-19 · 88 CVEs total

CVE-2024-50283 9.8 CRITICAL ksmbd: fix slab-use-after-free in smb3_preauth_hash_rsp
CVE-2024-50276 9.8 CRITICAL net: vertexcom: mse102x: Fix possible double free of TX skb
CVE-2024-53066 9.8 CRITICAL nfs: Fix KMSAN warning in decode_getfattr_attrs()
CVE-2024-50286 9.8 CRITICAL ksmbd: fix slab-use-after-free in ksmbd_smb2_session_create
CVE-2024-53058 9.4 CRITICAL net: stmmac: TSO: Fix unbalanced DMA map/unmap for non-paged SKB data
CVE-2024-53082 8.4 HIGH virtio_net: Add hash_key_length check
CVE-2024-50299 8.2 HIGH sctp: properly validate chunk size in sctp_sf_ootb()
CVE-2024-53057 7.8 HIGH net/sched: stop qdisc_tree_reduce_backlog on TC_H_ROOT
CVE-2024-50300 7.8 HIGH regulator: rtq2208: Fix uninitialized use of regulator_config
CVE-2024-50264 7.8 HIGH vsock/virtio: Initialization of the dangling pointer occurring in vsk->trans
CVE-2024-53044 7.8 HIGH net/sched: sch_api: fix xa_insert() error path in tcf_block_get_ext()
CVE-2024-53076 7.8 HIGH iio: gts-helper: Fix memory leaks for the error path of iio_gts_build_avail_scale_table()
CVE-2024-53080 7.8 HIGH drm/panthor: Lock XArray when getting entries for the VM
CVE-2024-53088 7.8 HIGH i40e: fix race condition by adding filter's intermediate sync state
CVE-2024-53063 7.8 HIGH media: dvbdev: prevent the risk of out of memory access
CVE-2024-50301 7.8 HIGH security/keys: fix slab-out-of-bounds in key_task_permission
CVE-2024-50294 7.8 HIGH rxrpc: Fix missing locking causing hanging calls
CVE-2024-50293 7.8 HIGH net/smc: do not leave a dangling sk pointer in __smc_create()
CVE-2024-50291 7.8 HIGH media: dvb-core: add missing buffer index check
CVE-2024-50288 7.8 HIGH media: vivid: fix buffer overwrite when using > 32 buffers

Showing top 20 of 88 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2024-53079

Anonymous User
2026-06-25 15:22:28

Just here to explore discussions, exchange ideas, and learn something new along the way. I like learning from different perspectives and sharing my input when it's helpful. Always open to new ideas and building connections. Here is my web-site:<a href="https://automisto24.com.ua/">AutoMisto24</a> https://automisto24.com.ua/


Leave a comment