文章预览
在这篇文章中,我将利用CVE-2024-5830,这是我在2024年5月报告的v8(Chrome的JavaScript引擎)中的一个类型混淆漏洞,编号为bug 342456991。该漏洞已在版本126.0.6478.56/57中修复。这个漏洞允许通过访问恶意网站,在Chrome的渲染器沙箱中实现远程代码执行(RCE)。 V8中的对象map和map转换 本节包含了一些关于对象地图和转换的背景资料,这些资料对于理解此漏洞是必要的。如果读者已经熟悉这些内容,可以跳到下一节。 地图(或隐藏类)的概念对JavaScript解释器来说是相当基础的。它表示对象的内存布局,并在属性访问的优化中起着关键作用。已经有很多优秀的文章详细讨论了这个话题。我特别推荐Mathias Bynens的文章“JavaScript引擎基础:Shapes和Inline Caches”。 一个地图持有一个属性描述符数组( DescriptorArrays ),其中包含关于每个属性的信息。它还包含对象元素
………………………………