注意补丁间隙:利用 Ubuntu 中的 io_uring 漏洞

主要观点:讨论了 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 天研究。
阅读 245
0 条评论