Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
POC-CVE-2025-6554 — 针对CVE-2025-6554的概念验证漏洞利用,这是V8 JavaScript引擎中的一个漏洞,允许通过可选链访问未初始化的'Hole'值,导致类型混淆和内存操作。 | Kitploit
工具/GitHubGitHub/ghostn4444/poc-cve-2025-6554
漏洞分析漏洞利用Web应用程序漏洞利用论文与研究学习与教育二进制利用
GitHubghostn4444/poc-cve-2025-6554

POC-CVE-2025-6554

针对CVE-2025-6554的概念验证漏洞利用,这是V8 JavaScript引擎中的一个漏洞,允许通过可选链访问未初始化的'Hole'值,导致类型混淆和内存操作。

查看仓库
1121年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-6554

CVE-2025-6554 是 Chrome 的 V8(JavaScript 引擎)解释器中的一个漏洞(Hole Check:对可选链表达式中的意外变量控制不足)。POC(CVE-2025-6554-POC.JS)探索了变量使用前“Hole”验证机制中的一个缺陷,该缺陷允许读取未初始化值,而这种读取行为通常会被引用错误阻止。

root@kitploit:~
function leak_hole() {
    let x;
    delete x?.[y]?.a;
    return y;
    let y;
}
function pwn() {
    let hole = leak_hole();
    %DebugPrint(hole);
}
pwn();

技术说明

1. 易受攻击代码的结构

let x; 和 let y; 声明局部作用域变量。
delete x?.[y]?.a 这行使用可选链来安全地访问嵌套属性。
问题:变量 y 在声明之前就被使用,这应当触发引用错误,但在此前的 V8 中该检查静默失败,从而允许捕获称为“The Hole”的特殊值(TDZ(暂时性死区)变量的哨兵值)。
代码中的返回值 return y; 本不可访问,因为 y 仍处于 TDZ 中,但该缺陷使得它可以被访问。

2. 补丁前的行为

避免访问 TDZ 中变量的机制是 ThrowReferenceerrofhole。
在补丁之前,该机制仅在 delete x?.[y]?.a 期间被调用一次。
V8 在内部将变量 y 标记为已经过“非 hole”验证,但该验证逸出了受控作用域,因此在 return y; 时不会被重新评估。

3. 修复内容

该补丁在 return y; 上增加了另一个强制性的 ThrowReferenceerrorifhole 调用,确保在语句执行前任何访问 y 的尝试都会正确触发错误。
此验证由作用域 oilchecketscope 保证,该作用域包含在对 optionalchainnulllabelscope 的所有调用中。

攻击流程

root@kitploit:~
Delete x?. [Y]?. → Try to access Y (not initialized) → Failure to check "Hole" 
→ Y escapes as value → return y; → Capture the value of "Hole" → Debugprint reveals

攻击者在捕获这个“Hole”后,可以推断 V8 引擎的内部状态,从而有助于以下攻击:

  • 类型探索混淆
  • 栈操作
  • 作用域检查绕过
下载工具