
CVE-2026-92935: vm2 配列形状の require ネストエスケープ(別名 GHSA-8hr7-r645-pc6w)のためのオフライン証拠チェッカー。
明示的に指定された vm2 パッケージのバージョンを、レビュー済みのアドバイザリ範囲と比較し、そのバージョン証拠が何を示し、何を示さないかを報告します。Python 3.10+、標準ライブラリのみ。単一の実行ファイル vm2_nesting_check.py は単体でコピーできます。ウェブサイトへの接続、アプリケーションコードのインポート、パッケージマネージャの実行、エクスプロイトペイロードの実行は一切行いません。
potentially_affected は悪用ではありません。 これは報告されたバージョンが文書化された影響範囲に該当することを意味します。アプリケーションの前提条件や悪用可能性は確立されておらず、すべての行は exploitability: not_tested を保持します。fixed_version_reported はパッチの証明ではありません。 これはバージョンの主張を記述するだけで、インストール済みのパッチや安全性を証明するものではありません。unknown はクリーンでも失敗でもありません。 欠落、矛盾、不正な形式、プレリリース、修飾付き、カスタム/ベンダービルドは unknown のままであり、レビュー済み範囲外のものも同様です。74aa57ba5df05c34d17ae67912cd26ec2335201b からバンドルされており、パッケージ固有の範囲比較と混在空白 CSV の修正が含まれています。コンパニオンリポジトリは不要です。# 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 のうち少なくとも1つが必須です。--tool-version はチェッカーのバージョン(現在 1.1.0)を出力します。
合成サンプルレポートを開く。データはサンプルのみです。実際の評価ではありません。
一次アドバイザリおよびレビュー済みデータベースは 2026-10-24 に取得されました(rules_as_of)。
文書化された影響範囲は 3.11.4 から 3.11.6 までです。レビュー済みの修正リリースは 3.11.7、レビュー済みの修正ラインは 3.11.x です。
| 報告バージョンの例 | 結果 |
|---|---|
| 3.11.3 | unknown |
| 3.11.4 | potentially_affected |
| 3.11.6 | potentially_affected |
| 3.11.7 | fixed_version_reported |
| 3.11.8 | fixed_version_reported |
| 3.12.0 | unknown |
| 4.0.0 | unknown |
境界に関する注記:
v は受け付けられます(v3.11.7)。欠落、矛盾、不正な形式、プレリリース、修飾付き、カスタム/ベンダービルドは unknown のままです。--build-source(または build_source フィールド)が空白、unknown(デフォルト)、upstream、official、official_upstream の場合はアップストリームとして比較されます。ベンダー名などその他の値は、独立したパッチの証拠が必要なため unknown となります。各入力値は個別のパッケージインスタンスです。チェッカーは単一インスタンスに対してエントリ間の証拠を突き合わせません。入力は1回の実行で組み合わせることができます。
| オプション | 入力 |
|---|---|
--version VERSION(エイリアス --package-version) | 報告された vm2 バージョン。繰り返し指定可能。 |
--inventory FILE | JSON オブジェクトまたはオブジェクトの配列。繰り返し指定可能。 |
--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 インベントリ。 1つのオブジェクトまたはオブジェクトの配列です。必須: 整数 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_enabled | NodeVMのネストが有効 |
require_configuration_is_array_shaped | require設定が配列形式である |
attacker_supplied_javascript_executed | 攻撃者が提供したJavaScriptが実行された |
各観察事項はbooleanまたは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 ゲートを発動しません。機能しないこと