目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%

CVE-2023-52934— Linux kernel 安全漏洞

一分钟漏洞结论

影响对象
Linux Linux
利用判断
尚无明确在野利用证据,仍需结合暴露面评估
建议动作
优先检查厂商安全公告和参考链接中的修复版本;无法立即升级时,限制受影响服务暴露并加强监测。

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于mm/MADV_COLLAPSE组件在查找pmd时未正确处理非none非huge非bad情况。

CVSS 7.8 · High EPSS 0.12% · P2

影响版本矩阵 6

厂商产品 版本范围状态
Linux Linux 34488399fa08faaf664743fa54b271eb6f9e1321< 96aaaf8666010a39430cecf8a65c7ce2908a030f affected
34488399fa08faaf664743fa54b271eb6f9e1321< edb5d0cf5525357652aff6eacd9850b8ced07143 affected
6.1 affected
< 6.1 unaffected
6.1.11≤ 6.1.* unaffected
6.2≤ * unaffected
获取后续新漏洞提醒 登录后订阅

一、 漏洞 CVE-2023-52934 基础信息

漏洞信息

对漏洞内容有疑问?看看神龙的深度分析是否有帮助!
查看神龙十问 ↗

尽管我们使用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。神龙努力确保数据的准确性,但请您根据实际情况进行核实和判断。

Vulnerability Title
mm/MADV_COLLAPSE: catch !none !huge !bad pmd lookups
来源: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: mm/MADV_COLLAPSE: catch !none !huge !bad pmd lookups In commit 34488399fa08 ("mm/madvise: add file and shmem support to MADV_COLLAPSE") we make the following change to find_pmd_or_thp_or_none(): - if (!pmd_present(pmde)) - return SCAN_PMD_NULL; + if (pmd_none(pmde)) + return SCAN_PMD_NONE; This was for-use by MADV_COLLAPSE file/shmem codepaths, where MADV_COLLAPSE might identify a pte-mapped hugepage, only to have khugepaged race-in, free the pte table, and clear the pmd. Such codepaths include: A) If we find a suitably-aligned compound page of order HPAGE_PMD_ORDER already in the pagecache. B) In retract_page_tables(), if we fail to grab mmap_lock for the target mm/address. In these cases, collapse_pte_mapped_thp() really does expect a none (not just !present) pmd, and we want to suitably identify that case separate from the case where no pmd is found, or it's a bad-pmd (of course, many things could happen once we drop mmap_lock, and the pmd could plausibly undergo multiple transitions due to intervening fault, split, etc). Regardless, the code is prepared install a huge-pmd only when the existing pmd entry is either a genuine pte-table-mapping-pmd, or the none-pmd. However, the commit introduces a logical hole; namely, that we've allowed !none- && !huge- && !bad-pmds to be classified as genuine pte-table-mapping-pmds. One such example that could leak through are swap entries. The pmd values aren't checked again before use in pte_offset_map_lock(), which is expecting nothing less than a genuine pte-table-mapping-pmd. We want to put back the !pmd_present() check (below the pmd_none() check), but need to be careful to deal with subtleties in pmd transitions and treatments by various arch. The issue is that __split_huge_pmd_locked() temporarily clears the present bit (or otherwise marks the entry as invalid), but pmd_present() and pmd_trans_huge() still need to return true while the pmd is in this transitory state. For example, x86's pmd_present() also checks the _PAGE_PSE , riscv's version also checks the _PAGE_LEAF bit, and arm64 also checks a PMD_PRESENT_INVALID bit. Covering all 4 cases for x86 (all checks done on the same pmd value): 1) pmd_present() && pmd_trans_huge() All we actually know here is that the PSE bit is set. Either: a) We aren't racing with __split_huge_page(), and PRESENT or PROTNONE is set. => huge-pmd b) We are currently racing with __split_huge_page(). The danger here is that we proceed as-if we have a huge-pmd, but really we are looking at a pte-mapping-pmd. So, what is the risk of this danger? The only relevant path is: madvise_collapse() -> collapse_pte_mapped_thp() Where we might just incorrectly report back "success", when really the memory isn't pmd-backed. This is fine, since split could happen immediately after (actually) successful madvise_collapse(). So, it should be safe to just assume huge-pmd here. 2) pmd_present() && !pmd_trans_huge() Either: a) PSE not set and either PRESENT or PROTNONE is. => pte-table-mapping pmd (or PROT_NONE) b) devmap. This routine can be called immediately after unlocking/locking mmap_lock -- or called with no locks held (see khugepaged_scan_mm_slot()), so previous VMA checks have since been invalidated. 3) !pmd_present() && pmd_trans_huge() Not possible. 4) !pmd_present() && !pmd_trans_huge() Neither PRESENT nor PROTNONE set => not present I've checked all archs that implement pmd_trans_huge() (arm64, riscv, powerpc, longarch, x86, mips, s390) and this logic roughly translates (though devmap treatment is unique to x86 and powerpc, and (3) doesn't necessarily hold in general -- but that doesn't matter since !pmd_present() always takes failure path). Also, add a comment above find_pmd_or_thp_or_none() ---truncated---
来源: 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
来源: CVE Program / CVE List V5
Vulnerability Type
N/A
来源: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
来源: 中国国家信息安全漏洞库 CNNVD
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于mm/MADV_COLLAPSE组件在查找pmd时未正确处理非none非huge非bad情况。
来源: 中国国家信息安全漏洞库 CNNVD
CVSS Information
N/A
来源: 中国国家信息安全漏洞库 CNNVD
Vulnerability Type
N/A
来源: 中国国家信息安全漏洞库 CNNVD

受影响产品

厂商 产品 影响版本 CPE 订阅
Linux Linux 34488399fa08faaf664743fa54b271eb6f9e1321 ~ 96aaaf8666010a39430cecf8a65c7ce2908a030f -
Linux Linux 6.1 -

二、漏洞 CVE-2023-52934 的公开POC

# POC 描述 源链接 神龙链接
AI 生成 POC 高级

未找到公开 POC。

登录以生成 AI POC

三、漏洞 CVE-2023-52934 的情报信息

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

CVE-2023-52934 补丁与修复 (1)

同批安全公告 · Linux · 2025-03-27 · 共 124 条

CVE-2023-53006 9.8 CRITICAL Linux kernel 安全漏洞
CVE-2025-21876 8.8 HIGH Linux kernel 安全漏洞
CVE-2025-21890 8.2 HIGH Linux kernel 安全漏洞
CVE-2022-49755 7.8 HIGH Linux kernel 安全漏洞
CVE-2025-21887 7.8 HIGH Linux kernel 安全漏洞
CVE-2025-21889 7.8 HIGH Linux kernel 安全漏洞
CVE-2023-52930 7.8 HIGH Linux kernel 安全漏洞
CVE-2023-52931 7.8 HIGH Linux kernel 安全漏洞
CVE-2023-52935 7.8 HIGH Linux kernel 安全漏洞
CVE-2023-53009 7.8 HIGH Linux kernel 安全漏洞
CVE-2023-52999 7.8 HIGH Linux kernel 安全漏洞
CVE-2023-52973 7.8 HIGH Linux kernel 安全漏洞
CVE-2023-52981 7.8 HIGH Linux kernel 安全漏洞
CVE-2023-52983 7.8 HIGH Linux kernel 安全漏洞
CVE-2023-52975 7.8 HIGH Linux kernel 安全漏洞
CVE-2023-52974 7.8 HIGH Linux kernel 安全漏洞
CVE-2023-52987 7.8 HIGH Linux kernel 安全漏洞
CVE-2025-21867 7.8 HIGH Linux kernel 安全漏洞
CVE-2023-52988 7.8 HIGH Linux kernel 安全漏洞
CVE-2023-53033 7.8 HIGH Linux kernel 安全漏洞

显示前 20 条,共 124 条。 查看全部 &rarr; →

IV. Related Vulnerabilities