虽然 IO_uring 是近几年 Linux 内核的最大创新之一,有助于提供更高效和高性能的 I/O,但它也存在各种安全漏洞。由于持续的安全问题,该用于异步 I/O 的接口在 Google 产品中受到限制或被完全禁用。
Google 安全博客指出,Google 漏洞奖励计划中 60% 的提交都与 IO_uring 有关。而且 Google 已经为 IO_uring 漏洞奖励支付了约 100 万美元。因此,Google 认为在奖励成本和内核漏洞数量方面显示了 IO_uring 的巨大安全风险。
因此,Google 已经在 Chrome OS 中禁用了 IO_uring,直到找到一种适当的沙盒方法。
与此同时,Google 的 Android 正在使用 seccomp-bpf 过滤器,以确保应用程序无法访问 IO_uring。而未来的 Android 版本将使用 SELinux 来限制 IO_uring 仅用于选择的系统进程。
此外 Google 还在积极研究在 GKE AutoPilot 中默认禁用 IO_uring。
最后,他们已经在 Google 生产服务器上禁用了 IO_uring 的使用。
Google 安全博客继续指出:“虽然 io_uring 带来了性能优势,并通过全面的安全修复及时对安全问题做出反应(如将 5.15 版本反向移植到 5.10 稳定代码树),但它毕竟是内核中相对较新的部分。因此,虽然 io_uring 仍在继续积极开发,但也会受到严重漏洞的影响,而且它还提供了强大的可利用原语 (exploitation primitives)。基于这些原因,我们目前只认为它对仅供受信任组件的使用是安全的。”