Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
vm2-nesting-check — 用于 CVE-2026-92935 的离线 vm2 证据检查工具。沙箱包与嵌套证据。独立 Python 实现;支持 JSON/CSV/HTML 报告;不含漏洞利用载荷。 | Kitploit
工具/GitHubGitHub/completetech-security/vm2-nesting-check
防御工具静态分析漏洞扫描器漏洞分析代码分析供应链安全
GitHubcompletetech-security/vm2-nesting-check

vm2-nesting-check

用于 CVE-2026-92935 的离线 vm2 证据检查工具。沙箱包与嵌套证据。独立 Python 实现;支持 JSON/CSV/HTML 报告;不含漏洞利用载荷。

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库网站
1210天前尚未审核

vm2-nesting-check,由 CompleteTech LLC 提供

Tests Python 3.10+ 无运行时依赖 AGPL-3.0 或商业许可证

vm2-nesting-check

针对 CVE-2026-92935:vm2 数组形 require 嵌套逃逸(别名 GHSA-8hr7-r645-pc6w)的离线证据检查器。

它将显式提供的 vm2 包版本与经审阅的公告范围进行比较,并报告该版本证据能说明和不能说明的内容。要求 Python 3.10+,仅使用标准库;单个可执行文件 vm2_nesting_check.py 可单独复制使用。它从不访问网站、导入应用代码、运行包管理器或执行漏洞利用载荷。

目录

  • 范围与诚实限制
  • 要求
  • 快速开始
  • 合成报告预览
  • 经审阅的规则
  • 输入
  • 操作员观察
  • 源码审查候选
  • 报告与输出
  • 退出状态与中断
  • 限制与数据处理
  • 来源与延伸阅读
  • 开发与贡献
  • 安全与许可证

范围与诚实限制

  • 仅限证据分诊。 结果描述的是你提供的版本(以及可选的来源或观察信息)。它不会扫描已部署系统、测试可利用性,或验证补丁是否已安装。
  • 清单由你提供。 公共 URL 无法提供已安装包的清单。请获取每个已部署包实例的确切版本和来源;声明和工作站本地版本不是部署证据。
  • potentially_affected 并非表示可利用。 它表示所报告的版本落在文档记载的受影响区间内。应用前提条件和可利用性并未确立,且每一行都保留 exploitability: not_tested。
  • fixed_version_reported 并非补丁证明。 它仅描述版本声明;它从不证明已安装补丁或安全性。
  • unknown 既不是干净也不是失败。 缺失、冲突、格式错误、预发布、带限定符以及自定义/厂商构建均保持 unknown,经审阅范围之外的任何内容也是如此。
  • 单一 CVE 范围。 低于 3.11.4 的版本可能存在其他漏洞,但不在本精确公告范围内。
  • 对真实清单使用该检查器需要对这些系统拥有权限。开发或运行本项目不授权对真实目标进行任何扫描,且该检查器不执行任何扫描。

要求

  • Python 3.10 或更新版本;无第三方包。
  • 运行时无需其他任何东西。有界输入和报告辅助工具从经审阅的 Node.js 检查器 74aa57ba5df05c34d17ae67912cd26ec2335201b 捆绑而来,包含包特定的范围比较以及混合空白 CSV 修复。无需配套仓库。
  • CI 在 Ubuntu、Windows 和 macOS 上使用 Python 3.10 和 3.14 运行测试。

快速开始

# Assess one reported version and print JSON
python vm2_nesting_check.py --version 3.11.7 --format json

# Assess the example inventory and save an HTML report
python vm2_nesting_check.py --inventory examples/inventory.example.json --format html --output report.html

# Assess a CSV inventory (CSV is the default format) and exit 1 on potentially_affected results
python vm2_nesting_check.py --csv-list inventory.csv --fail-on-finding

# Show every option, then run the local test suite
python vm2_nesting_check.py --help
python -m unittest -v

至少需要提供 --version、--inventory、--csv-list 或 --source 之一。--tool-version 会打印检查器版本(当前为 1.1.0)。

合成报告预览

vm2 合成报告

打开合成示例报告。仅为示例数据;这不是实时评估。

已审查规则

主要公告和已审查数据库检索于 2026-10-24(rules_as_of)。

文档记载的受影响区间为 3.11.4 至 3.11.6。已审查的修复版本为 3.11.7,已审查的修复分支为 3.11.x。

示例报告版本结果
3.11.3unknown
3.11.4potentially_affected
3.11.6potentially_affected
3.11.7fixed_version_reported
3.11.8fixed_version_reported
3.12.0unknown
4.0.0unknown

关于边界的说明:

  • 未来分支保持为未知,而不是外推补丁声明;精确受影响区间之外的版本也保持为未知,包括可能存在其他缺陷的较旧版本。
  • 数据库将此 CVE 映射到规范 GHSA;维护者页面仍显示没有已知 CVE。报告中的 9 月 17 日日期不是规范发布日期。
  • 接受前导 v(v3.11.7)。缺失、冲突、格式错误、预发布、带限定符、自定义/厂商构建均保持为 unknown。
  • --build-source(或 build_source 字段)为空白、unknown(默认值)、upstream、official 或 official_upstream 时按上游进行比较。任何其他值(例如厂商名称)都会产生 unknown,因为它需要独立的补丁证据。

输入

每个输入值都是一个独立的包实例;检查器不会在单个实例的多个条目之间协调证据。输入可以在一次运行中组合使用。

选项输入
--version VERSION(别名 --package-version)报告的 vm2 版本;可重复。
--inventory FILEJSON 对象或对象数组;可重复。
--csv-list FILE带标题行的 CSV;可重复。
--source FILE用于词法审查的显式 JS/TS 文件(参见源码审查候选);可重复。
--source-root DIR与 --source 一起使用时必需;证据路径相对于它。
--build-source SOURCE--version 构建的来源,最多 512 个字符。适用于 CLI 版本。
--nodevm-nesting-enabled、--require-configuration-is-array-shaped、--attacker-supplied-javascript-executed(true 或 false)应用于 CLI 版本的操作员观察。

JSON 清单。 一个对象或一个对象数组。必需:整数 schema_version: 1 和字符串 package_version。可选:package: "vm2"、label、build_source 以及下面的观察键。未知或重复的键、错误的类型、非有限数字和格式错误的输入都会被拒绝。参见 examples/inventory.example.json。

{
  "schema_version": 1,
  "package": "vm2",
  "package_version": "3.11.7",
  "label": "example-package-instance",
  "build_source": "unknown",
  "nodevm_nesting_enabled": null,
  "require_configuration_is_array_shaped": null,
  "attacker_supplied_javascript_executed": null
}

CSV 列表。 表头必须包含 package_version。可选列为 label、build_source 以及各观测键;观测单元格取值为 true、false 或留空。其他列将被拒绝。

label,package_version,build_source
example-package-instance,3.11.7,unknown

操作员观察项

这些可选观察项对应公告中的前提条件。仅在您已知晓时提供。在命令行中,将下划线替换为连字符(例如 --nodevm-nesting-enabled true)。

观察项键含义
nodevm_nesting_enabledNodeVM 嵌套已启用
require_configuration_is_array_shapedrequire 配置为数组形式
attacker_supplied_javascript_executed攻击者提供的 JavaScript 已执行

每个观察项为布尔值或 null(未报告),均未经核实,且绝不会改变包版本结果。缺失的观察项不能证明已缓解。不执行污点分析、可达性测试或运行时求值。

源码审查候选

可选的源码检查会为 NodeVM 构造生成独立的词法候选。它是一种审查辅助手段,而非配置、可达性或攻击者控制的证明。

python vm2_nesting_check.py --source examples/source.example.js --source-root examples --format json
python vm2_nesting_check.py --version 3.11.6 --source examples/source.example.js --source-root examples --format html

功能说明

  • 通过可重复的 --source 显式选择文件;--source-root 为必填项,且所有选中的路径都必须解析到该目录内。不会遍历或执行任何内容。接受的扩展名为 .js、.cjs、.mjs、.ts、.cts、.mts、.jsx 和 .tsx。
  • 扫描器可识别简单的字面量 vm2 CommonJS/ES 导入,包括解构别名和命名空间 .NodeVM 构造。
  • 对于每个 new 候选,它会记录相对路径和行号、字面量 nesting 值、数组/对象或字面量 require 形态,以及与直接赋值变量上 .run() 的词法关联。
  • 字符串参数并不能证明输入可信;变量参数也不能证明受攻击者控制。
  • 源行始终具有状态 unknown、可利用性 not_tested 和未填写的操作员前置条件。它们绝不会继承单独提供的版本的评估结果,也不会自行触发 --fail-on-finding 门禁。

功能不包含的内容

  • 它是一个有边界的词法审查辅助工具,而非 AST 或绑定/流分析。变量遮蔽、重新赋值、执行顺序、计算导入/选项、JSX/TS 语法、包含插值的模板,以及正则/除法歧义都需要人工审查。
  • 当未找到受支持的匹配项时,报告会包含一行 unknown 覆盖行,绝不会给出不存在或已缓解的结论。
  • 展开运算符、重复或计算键、动态选项,以及超过 4,096 个 token 的选项表达式,其形态保持未知。
  • 无法进行 token 化的源(例如未终止的字符串、注释或正则,或未配对的定界符)属于输入错误,而非评估结果。

边界与隐私。 源文件共享 限制与数据处理 中所述的 4 MiB/文件、100 个文件和 10,000 条结果的预算,并额外有 200,000 token/文件的限制。报告包含相对位置和形态标签,不包含源代码片段或源字符串内容。选中的源文件及其别名仍受保护,不受 --output --force 影响。

Schema。 CSV 和 JSON 报告 schema 1.1 新增了 source_path、source_line、source_nesting、source_require、source_run_argument 和 source_coverage;HTML 在其证据说明中包含这些候选。

报告与输出

使用 --format csv|json|html 选择格式(默认 csv),并使用 --output FILE 写入,否则报告输出到 stdout。JSON、公式中和化的 CSV 和转义的无脚本 HTML 共享相同的评估结果。--brand NAME 设置 HTML 报告中的组织名称(默认 CompleteTech LLC,最多 512 个字符)。

解读结果

status含义
potentially_affected报告的版本位于文档记载的受影响区间内。并非确认可利用性。
fixed_version_reported报告的版本在已审查的 3.11.x 系列内满足修复条件。这是版本声明,而非已安装补丁的证明。
unknown证据缺失、冲突、格式错误、带限定条件、厂商构建、超出已审查范围,或来自源代码审查。并非干净结果。
下载工具