Linux 内核再爆 PinTheft 本地提权漏洞,影响 Arch Linux 等发行版
IT之家5月21日消息,科技媒体cyberkendra昨日(5月20日)发布博文,报道称Linux内核再次曝光名为PinTheft的提权漏洞,相关补丁已经进入上游内核。
在 Copy Fail(4月29日)、Dirty Frag(5月7日)、Fragnesia(5月13日)以及Qualys威胁研究部门(TRU)披露CVE-2026-46333漏洞外,这是过去3周内曝光的第5个高危漏洞。
PinTheft漏洞由V12安全团队的Aaron Esau发现,问题出在RDS(Reliable Datagram Sockets,可靠数据报套接字)的零拷贝发送路径。
rds_message_zcopy_from_user()在逐页把用户态内存固定到内核空间后,如果后续页面触发错误,错误处理路径会先释放已固定页面;但后续RDS消息清理又会再次释放一次,于是形成double-free。
单看引用计数错误,这类问题通常不容易直接变成稳定提权。不过PinTheft把io_uring拉进了利用链。
攻击者先把一个匿名内存页注册成io_uring固定缓冲区,并赋予1024个引用偏置;随后通过1024次故意失败的RDS发送,逐步耗尽这些引用,最终让io_uring手里留下一个本不该再持有的悬空指针。
接下来,利用代码会把目标SUID二进制的第一页逐出缓存,再回收同一个物理页,并借助io_uring的悬空缓冲区指针覆写特权程序的页缓存。
原文提到,/usr/bin/su、passwd和pkexec都是优先目标,攻击者随后运行被改写的程序,就能直接拿到root shell。
不过,这个漏洞的利用门槛并不算低。除了需要加载RDS模块,系统还必须启用io_uring,存在可读的SUID-root二进制文件,并且运行在x86_64平台。
按原文测试结果,在常见发行版中,只有Arch Linux默认加载了所需的RDS模块,其他主流发行版并不会开箱即用加载它,因此受影响范围相对有限。
IT之家附上参考地址
PinTheft
所有文章未经授权禁止转载、摘编、复制或建立镜像,违规转载法律必究。
举报邮箱:1002263188@qq.com