周杰伦5/22/2026, 2:00:28 PM
文章分类其他阅读数 : 6阅读时长 : 9分钟
【茶余饭后-漏洞预警 | Linux内核RDS零拷贝与io_uring组合本地提权漏洞(PinTheft)】此文章归类为:茶余饭后。
一、漏洞概述
漏洞类型
本地权限提升(LPE)
漏洞等级
高危
漏洞编号
暂无CVE
_
漏洞评分
-
利用复杂度
中
影响版本
Linux内核(启用RDS、RDS_TCP、io_uring)
利用方式
本地
POC/EXP
已公开
近期,互联网上披露了PinTheft漏洞,该漏洞利用Linux内核RDS(Reliable Datagram Sockets)零拷贝发送路径中的双重释放(double-free)缺陷,结合io_uring固定缓冲区机制,可将引用计数漏洞转化为页缓存覆盖,最终实现本地普通用户到root的权限提升。为避免您的业务受影响,建议您及时开展安全风险自查。
Linux 内核(Linux Kernel)是 Linux 操作系统的核心与“大脑”。它负责管理系统的所有软硬件资源,确保各个程序能够公平、高效地共享 CPU、内存和硬盘等硬件资源。RDS(Reliable Datagram Sockets)是Linux内核提供的一种可靠数据报套接字协议,主要用于集群通信场景。io_uring是Linux内核的高性能异步I/O接口,广泛应用于现代Linux系统的高并发I/O处理。
据描述,该漏洞存在于rds_message_zcopy_from_user()函数中。该函数在RDS零拷贝发送路径中逐个固定(pin)用户页面,若后续页面发生缺页故障(page fault),错误处理路径会释放已固定的页面,而后续的RDS消息清理流程会再次释放这些页面,因为scatterlist条目和条目计数在zcopy通知器被清除后仍然有效。每次失败的零拷贝发送都可以从第一个页面窃取一个引用。攻击者利用io_uring注册固定缓冲区,给页面施加1024个FOLL_PIN引用,然后通过失败的RDS零拷贝发送窃取这些引用,释放页面后将其重新回收为SUID-root二进制文件的页缓存,再利用过时的io_uring固定缓冲区页面指针覆盖页缓存内容,执行被篡改的SUID二进制文件即可获得root权限。
漏洞影响的产品和版本:
启用CONFIG_RDS、CONFIG_RDS_TCP、CONFIG_IO_URING的Linux内核
需要io_uring_disabled=0
需要系统上存在可读的SUID-root二进制文件
x86_64架构(PoC中嵌入的ELF载荷为x86_64)
确认Arch Linux默认启用RDS模块,受影响最为直接;其他常见发行版默认未启用RDS模块
二、漏洞复现
三、资产测绘
据daydaymap数据显示互联网存在285,170,610个资产,国内风险资产分布情况如下。
全球分布:
国内分布:
四、解决方案
1、临时缓解措施
如不需要RDS功能,立即卸载并禁用RDS模块:
rmmod rds_tcp rds printf 'install rds /bin/false\ninstall rds_tcp /bin/false\n' > /etc/modprobe.d/pintheft.conf
2、官方修复
关注Linux内核官方补丁,补丁已由Aaron Esau提交至内核邮件列表:
b35K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6D9L8%4u0W2i4K6u0W2K9$3g2J5L8X3g2D9i4K6u0W2L8%4u0Y4i4K6u0r3L8X3g2@1k6r3g2$3i4K6u0r3x3U0l9J5y4U0l9#2x3o6f1J5x3K6b7K6x3K6k6Q4x3X3f1J5x3e0x3J5y4K6t1I4i4K6u0V1x3g2)9J5k6r3q4U0K9r3g2F1k6r3g2J5i4K6b7H3K9$3g2J5L8X3g2D9i4K6u0W2L8%4u0Y4i4K6u0r3
建议及时更新内核至修复版本
3、自查建议
检查系统是否加载了rds或rds_tcp内核模块:lsmod | grep rds
检查是否启用了CONFIG_RDS、CONFIG_RDS_TCP、CONFIG_IO_URING
检查系统SUID-root二进制文件的完整性,留意异常行为
五、参考链接
399K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6k6h3y4D9K9i4y4@1M7#2)9J5k6h3!0J5k6#2)9J5c8X3!0K6M7#2)9J5k6s2y4W2j5#2)9J5c8U0t1H3x3U0k6Q4x3V1k6I4x3W2)9J5c8U0j5H3y4b7`.`.1dfK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6D9L8%4u0W2i4K6u0W2K9$3g2J5L8X3g2D9i4K6u0W2L8%4u0Y4i4K6u0r3L8X3g2@1k6r3g2$3i4K6u0r3x3U0l9J5y4U0l9#2x3o6f1J5x3K6b7K6x3K6k6Q4x3X3f1J5x3e0x3J5y4K6t1I4i4K6u0V1x3g2)9J5k6r3q4U0K9r3g2F1k6r3g2J5i4K6b7H3K9$3g2J5L8X3g2D9i4K6u0W2L8%4u0Y4i4K6u0r399bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2V1k6s2m8G2j5#2)9J5k6h3y4G2L8g2)9J5c8V1c8h3b7W2)9J5k6o6t1H3x3U0k6Q4x3X3b7I4x3e0t1K6x3b7`.`.
原文链接
更多【茶余饭后-漏洞预警 | Linux内核RDS零拷贝与io_uring组合本地提权漏洞(PinTheft)】相关视频教程:www.yxfzedu.com