JavaScript 引擎 V8 的内存沙盒 (V8 Sandbox) 开始测试

来源: OSCHINA
编辑:
2024-04-08 11:37:00

JavaScript 引擎 V8 宣布其内存沙盒 (V8 Sandbox) 自最初的设计文档发布以来,已历经近三年时间,其间发布了数百个 CL,现在它已不再被视为实验性安全功能,并将在 Chrome 123 中进入测试阶段。

公告写道,过去三年(2021 年至 2023 年)发生的所有 Chrome 漏洞都是从 Chrome 渲染器进程中的内存损坏漏洞开始,该漏洞被用于远程代码执行 (RCE)。其中,60% 是 V8 中的漏洞。

然而,有一个问题:V8 漏洞很少是经典的内存损坏错误(如释放后使用、越界访问等),而是微妙的逻辑问题,这些问题反过来可以被利用来损坏内存。

因此,现有的内存安全解决方案大部分不适用于 V8。特别是,无论是切换到内存安全语言(例如 Rust),还是使用当前或未来的硬件内存安全功能(例如内存标记),都无法帮助解决 V8 当前面临的安全挑战。

不过在 V8 中发现和利用的几乎所有漏洞都有一个共同点:最终的内存损坏必然发生在 V8 堆内存,因为编译器和运行时(几乎)专门在 V8HeapObject实例上运行。

基于此,V8 团队设计了沙盒机制。V8 沙盒的设计思想是隔离 V8 堆内存,这样任何内存损坏都不能“传播”到进程内存的其他部分。

更多细节查看 https://v8.dev/blog/sandbox

展开阅读全文
点击引领话题📣 发布并加入讨论🔥
0 评论
1 收藏
分享
返回顶部
顶部