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

目标: 1000 元 · 已筹: 1359 元

100%

CVE-2026-93241— memcg:oom_reaper 完成后绕过回收和 OOM 终止任务

一分钟漏洞结论

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

以下是该漏洞描述信息的中文翻译: 在 Linux 内核中,已解决以下漏洞: memcg:当 oom_reaper 完成工作后,为即将终止的任务绕过内存回收和 OOM Killer 在 Meta,我们观察到实例中有 OOM(内存溢出)杀死的工作进程在退出路径上卡住数小时。在一种特定情况下,该工作进程卡住了超过 8 小时,我不得不手动移除 限制,才能让该进程退出。 该工作进程是单进程作业,设置了约 55 GiB 的 并启用了 zswap。它几乎没有任何匿名内存(anon),而 zswap 中压缩了约 111 GiB 的

AI 预测 5.5 利用难度: 中等 EPSS 0.23% · P13

可能的 ATT&CK 技术 1 AI

T1055.012 · Process Hollowing

影响版本矩阵 8

厂商产品 版本范围状态
Linux Linux a75ffa26122bba4a3fa9372aa13b32d7a5590425< 801bcbdbfd595cc7f0de95f2802b5596c8971315 affected
a75ffa26122bba4a3fa9372aa13b32d7a5590425< d44c3c5986c7a4a5f913a813e18cda08a838f91b affected
a75ffa26122bba4a3fa9372aa13b32d7a5590425< 6b0d1083364fc8e7cc2f7d1f93ee3ee78f4d52f7 affected
6.16 affected
< 6.16 unaffected
6.18.51≤ 6.18.* unaffected
7.2.5≤ 7.2.* unaffected
7.3-rc1≤ * unaffected
获取后续新漏洞提醒 登录后订阅

一、 漏洞 CVE-2026-93241 基础信息

漏洞信息

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

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

Vulnerability Title
memcg: bypass the reclaim and oom killer for dying tasks once oom_reaper is done
来源: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: memcg: bypass the reclaim and oom killer for dying tasks once oom_reaper is done At Meta, we are seeing instances where an OOM killed job is stuck in the exit path for several hours. In one particular case, the job was stuck for more than 8 hours and I had to manually remove the memory.max limits to allow the process to exit. The job was a single process job and had ~55 GiB memory.max and zswap enabled. It had almost 0 anon in memory and ~111 GiB in zswap compressed to ~51 GiB zswap pool (i.e. almost all of memory.current was zswap). Nothing was left on the LRUs to reclaim. On further inspection, I observed ~20k threads of that process stuck with the following stack: [<0>] mem_cgroup_out_of_memory+0x4e/0xa0 [<0>] charge_memcg+0x8bf/0x990 [<0>] mem_cgroup_swapin_charge_folio+0x4e/0x80 [<0>] __read_swap_cache_async+0x10c/0x260 [<0>] swapin_readahead+0x116/0x3f0 [<0>] do_swap_page+0x13c/0x1ce0 [<0>] handle_mm_fault+0x61d/0x11f0 [<0>] do_user_addr_fault+0x3e7/0x6d0 [<0>] exc_page_fault+0x8f/0x110 [<0>] asm_exc_page_fault+0x22/0x30 [<0>] __get_user_8+0x14/0x20 [<0>] futex_cleanup+0x27/0x1c0 [<0>] futex_exit_release+0x47/0x60 [<0>] do_exit+0x107/0x940 [<0>] do_group_exit+0x81/0xa0 [<0>] get_signal+0x2b1/0x6e0 [<0>] arch_do_signal_or_restart+0x1a/0x1c0 [<0>] exit_to_user_mode_loop+0xa8/0x1c0 [<0>] do_syscall_64+0x152/0x250 [<0>] entry_SYSCALL_64_after_hwframe+0x4b/0x53 In addition the dmesg was filled with "Out of memory and no killable processes..." messages. I have no idea why oom reaper was not able to reap/unmap the process. My guess is that since oom reaper tries to acquire mmap_lock in read mode limited number of times and then gives up, there might be a thread of that process which had mmap_lock in write mode at that time. My initial suspicion was the futex_cleanup and kernel page fault causing infinite fault and charge retries but that was put to rest in previous discussions happened on similar problem [1]. My current theory is that it is just a simple slow serialization behind the oom_lock. Unlike page allocator, memcg charge code takes the oom_lock without the "try". Though memcg oom code uses mutex_lock_killable(), note that in the call stack get_signal() consumes SIGKILL (or sigdelset(SIGKILL)) before calling do_group_exit(). So this mutex_lock_killable() is just a mutex_lock() here. Therefore 10s of thousands of threads are waiting on oom_lock and one by one they get -EFAULT from get_user() in the futex cleanup code and bails out. Discussion from [1] led to commit a75ffa26122b ("memcg, oom: do not bypass oom killer for dying tasks") which routes dying tasks into the OOM path precisely so the oom_reaper can reap their mm and free the memory asynchronously. But the reaper is best-effort and one-shot: if it cannot take mmap_lock for read (e.g. a sibling thread holds it for write) it sets MMF_OOM_SKIP and never retries, leaving only the glacial oom_lock-serialized synchronous drain. Once MMF_OOM_SKIP is set there is no more asynchronous reclaim coming for the mm, so a dying task charging against it has nothing left to wait for: it frees its memory only once it finishes exiting. Running reclaim and the (no-victim) OOM killer for it is then pointless, and doing it for 10s of thousands of exiting threads is what serializes them behind oom_lock. So before reclaim, if current is an OOM victim whose reaper is done, fail the charge. Reproduced with 20k threads, each parking a robust futex head on its own zswapped page, OOM-group-killed while a sibling holds mmap_lock for write so the reaper gives up and sets MMF_OOM_SKIP. Tested on next-20260728 and baseline show ~90 seconds exit time while with the patch the exit time reduced to ~3 seconds.
来源: CVE Program / CVE List V5
CVSS Information
N/A
来源: CVE Program / CVE List V5
Vulnerability Type
N/A
来源: CVE Program / CVE List V5

受影响产品

厂商 产品 影响版本 CPE 订阅
Linux Linux a75ffa26122bba4a3fa9372aa13b32d7a5590425 ~ 801bcbdbfd595cc7f0de95f2802b5596c8971315 -
Linux Linux 6.16 -

二、漏洞 CVE-2026-93241 的公开POC

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

未找到公开 POC。

登录以生成 AI POC

三、漏洞 CVE-2026-93241 的情报信息

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

CVE-2026-93241 补丁与修复 (3)

同批安全公告 · Linux · 2026-09-24 · 共 234 条

CVE-2026-93207 9.8 CRITICAL SUNRPC svcauth_gss_decode_credbody() 存在安全漏洞
CVE-2026-97413 9.8 CRITICAL Linux RDMA/rtrs-srv整数下溢漏洞
CVE-2026-93228 9.1 CRITICAL svcrdma 拒绝段计数为0的写入/回复块漏洞
CVE-2026-93793 8.8 HIGH iwlwifi 驱动 TX_CMD 响应布局验证漏洞
CVE-2026-93799 8.8 HIGH iwlwifi mvm BA窗口状态通知中sta_id验证漏洞
CVE-2026-93790 8.8 HIGH iwlwifi 驱动 BA 通知中 tid_data 越界访问漏洞
CVE-2026-93806 8.8 HIGH wifi: cfg80211 关联响应长度验证漏洞
CVE-2026-97442 8.8 HIGH ath11k无线驱动rx_h_undecap_nwifi无效数据访问漏洞
CVE-2026-97509 8.8 HIGH Thunderbolt 服务期间保持 XDomain 引用漏洞
CVE-2026-97409 8.8 HIGH Linux NVMe-oF目标未初始化前取消请求漏洞
CVE-2026-93280 8.8 HIGH Greybus 音频拓扑边界检查漏洞
CVE-2026-93284 8.8 HIGH drm/pagemap 迁移错误前未解除 dma 映射
CVE-2026-97451 8.4 HIGH ACPICA mid_op 整数溢出漏洞
CVE-2026-97452 8.4 HIGH ACPICA:防止添加无效引用
CVE-2026-97455 8.4 HIGH ACPICA acpi_ds_terminate_control_method 使用后释放漏洞
CVE-2026-97450 8.4 HIGH ACPICA 双重验证处理器对象类型漏洞
CVE-2026-93827 8.4 HIGH virtio-fs 队列设置失败时双重释放漏洞
CVE-2026-97433 8.2 HIGH NVMe 验证 FDP 配置描述符大小
CVE-2026-93221 8.1 HIGH NFS服务端标志位转换为无符号长整型
CVE-2026-93786 8.1 HIGH ksmbd 保持 VFS 继承 POSIX ACL 掩码漏洞

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

IV. Related Vulnerabilities

V. Comments for CVE-2026-93241

暂无评论


发表评论