CVE-2026-46333Linux内核ptrace组件存在逻辑缺陷。`ptrace_may_access()`函数在检查线程访问权限时,错误地针对没有关联内存管理器(mm)的线程(如内核线程)使用了'dumpable'标志。这导致传统的“丢弃能力”安全机制失效,本地低权限攻击者可能利用此漏洞绕过权限检查,访问敏感信息或影响系统完整性。
该漏洞的核心在于Linux内核中`ptrace`子系统对`get_dumpable()`逻辑的滥用。`dumpable`标志本意用于判断进程内存是否可被转储,通常与进程是否拥有`mm`指针紧密相关。然而,`ptrace_may_access()`在没有`mm`的情况下依然使用此标志进行权限验证,甚至针对从未有过VM的内核线程。尽管代码中包含了uid/gid匹配检查,通常要求uid为0才能查看内核线程,但这种逻辑绕过了基于能力的访问控制。这意味着即使进程尝试通过`setuid`等机制丢弃特权,由于内核在ptrace检查时的逻辑缺陷,仍可能保留对受保护内核线程的访问能力。修复方案引入了对`CAP_SYS_PTRACE`能力的强制要求,并在无`mm`时使用缓存标志,从而修复了这一安全绕过问题。