主要观点:讨论了 Linux 内核中io_uring
的使用后释放漏洞 CVE-2024-0582,介绍了数据仅利用策略,使非特权用户获得受影响系统的 root 权限。
关键信息:
- 漏洞在 2023 年 12 月稳定内核中被修补,但两个多月未移植到 Ubuntu 内核。
- 2024 年 1 月 Project Zero 公开该漏洞,Ubuntu 23.10 和 22.04 LTS 运行易受攻击版本。
io_uring
是异步 I/O API,有提交和完成队列,相关漏洞与提供的缓冲区环功能有关。- 漏洞可在应用注册带
IOU_PBUF_RING_MMAP
标志的缓冲区环并随后注销时触发,导致内存释放后仍可访问。 - 利用策略基于 Linux 内存分配机制,通过打开大量文件耗尽
filp
缓存的 slab,使新的file
结构分配在攻击者可控制的内存区域,从而修改文件权限等。
重要细节: io_uring_setup()
设置io_uring
实例上下文,io_uring_register()
注册资源,io_uring_enter()
发起和完成 I/O。- 提供的缓冲区环可通过
IORING_REGISTER_PBUF_RING
注册和IORING_UNREGISTER_PBUF_RING
注销,用户可委托内核分配缓冲区环。 - 漏洞触发时内核分配的内存在释放后可能仍被应用映射,导致使用后释放漏洞。
- 利用策略包括触发漏洞、喷射文件结构、定位内存中的文件结构、修改文件权限和添加后门账户等步骤。
- Exodus Intelligence 团队发现零日漏洞并进行 N 天研究。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。