此概念验证用于检测基于 WebKit 的浏览器是否易受 CVE‑2025‑24201 影响,这是一个由 WebGL 实现中不正确的功能验证导致的高严重性越界写入漏洞。
当 WebGLRenderingContext(WebGL 1)允许启用常量 PRIMITIVE_RESTART_FIXED_INDEX(0x8D69)——一个仅在 WebGL 2 中有效的功能——而不产生 GL_INVALID_OPERATION 或 GL_INVALID_ENUM 错误时,就会触发 CVE‑2025‑24201。
这种异常行为可能导致在涉及索引缓冲区的绘制调用期间发生内存损坏。
PoC 执行以下操作:
canvas.getContext("webgl") 创建一个 WebGL 1 上下文。0x8D69。gl.getError() 的返回值。如果没有返回错误,则说明实现可能存在漏洞。
index.html – 执行检测并将结果及内部日志输出到屏幕的独立 HTML 文件。README.md – 本文件。只需在要测试的浏览器中打开 index.html 文件。
预期结果:
🛡️ Safe – error returned → 不易受攻击✅ VULNERABLE – no error on gl.enable(0x8D69) → 易受攻击The_Maxu