Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-59891-control-lab — @sigstore/oci の CVE-2026-59891 に特化した、隔離されたリグレッションおよびセキュリティ統制ラボ | Kitploit
ツール/GitHubGitHub/gyubin02/cve-2026-59891-control-lab
コンテナセキュリティ脆弱性分析クラウドセキュリティサプライチェーンセキュリティ設定ミス学習と教育ラボと実践
GitHubgyubin02/cve-2026-59891-control-lab

cve-2026-59891-control-lab

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

@sigstore/oci の CVE-2026-59891 に特化した、隔離されたリグレッションおよびセキュリティ統制ラボ

リポジトリを見る
61ヶ月前未レビュー

CVE-2026-59891 Regression & Control Lab

@sigstore/oci の実際の脆弱バージョンと修正バージョンを同じ入力で比較し、 環境別の露出条件を点検する隔離型の演習および read-only 監査 プロジェクトです。

このプロジェクトの CVE Reporter は gyubin02 です。

採用・面接用の要約: CVE-2026-59891 脆弱性管理自動化の事例

何を検証するか

CVE-2026-59891 の核心は、レジストリの認証情報を選ぶ際に発生する ホスト名の混同です。

  • 0.7.0: cr.io が ghcr.io 文字列の中にあるという理由で ghcr.io の認証情報を選択できます。
  • 0.7.1: ホスト名を正規化した上で、正確に一致する認証情報のみを 選択します。

このリポジトリは、まず2つのクレデンシャル選択シナリオを自動 検証します。

  1. collision: ghcr.io の認証情報しかないのに、対象は cr.io
  2. exact: 対象と正確に一致する cr.io の認証情報がある

脆弱バージョンは最初のシナリオで認証情報を誤って選択し、修正 バージョンは拒否する必要があります。両バージョンとも2番目の正常 シナリオは成功する必要があります。

ここに、実際の外部レジストリの代わりに 127.0.0.1 の使い捨てモック レジストリを使用した動的比較を追加しました。脆弱バージョン 0.7.0 は ローカルに2件のリクエストを行い、認証チャレンジの後の2番目の リクエストで合成された Authorization ヘッダーが観察されます。修正 バージョン 0.7.1 はクレデンシャル選択段階で拒否されるため、リクエスト は0件です。結果にはヘッダーの値の代わりに、観察の有無とリクエスト数 のみが残ります。

プロジェクト露出点検 CLI

cve-2026-59891-audit は、対象プロジェクトの package-lock.json と 明示的に指定した Docker config の メタデータのみ を読み取り、以下を 識別します。

  • 影響を受ける @sigstore/oci のインストール場所とバージョン
  • 脆弱バージョンの存在と実際の露出条件の充足有無
  • レジストリの部分文字列の衝突と JSON key の順序上の実際の選択対象
  • 環境別の優先順位、対応事項と再試験手順
  • レジストリのホスト名と絶対パスが除去された JSON・Markdown の証跡

合成フィクスチャですぐに実行:

root@kitploit:~
npm run audit:demo

他の Node.js プロジェクトの点検:

root@kitploit:~
npm run audit:project -- \
  --project ../target-project \
  --docker-config ../review-copy/config.json \
  --image cr.io/example/demo \
  --destination-trust unknown \
  --format markdown \
  --output reports/cve-2026-59891.md

--destination-trust は、次のいずれかを必ず指定します。

  • trusted: コードと許可リストで destination が制限されていることを確認
  • untrusted: 外部入力や workflow 入力が destination に影響
  • unknown: まだ確認できていない

判定は exposure_conditions_met、potential_exposure、 affected_component_only、not_detected、indeterminate に 分かれます。not_detected も記録された入力範囲に対する結果にすぎず、 “安全”や“規程準拠”を意味するものではありません。

安全装置

  • 回帰ラボは実際の ~/.docker/config.json を読み取りも修正もしません。
  • 隔離された専用の HOME と無価値な lab-user / LAB_ONLY_FAKE_TOKEN のみを使用します。
  • HOME、ラボのマーカー、偽の値がすべて正確なときだけパッケージを呼び出します。
  • 既存の選択回帰プローブは、すべての HTTP(S)、TCP、TLS、DNS と fetch 呼び出しをトリップワイヤーとしてブロックします。
  • 動的プローブが使用する Node ネットワーク表面では、OS が割り当てた 正確な 127.0.0.1 ポートの HTTP リクエストのみ許可します。外部・他の ポートの HTTP、DNS resolver、TLS、UDP、グローバル fetch・WebSocket は 遮断します。
  • 子プロセスに現在のセッションのトークン・Docker 環境変数を継承し ません。
  • stdout/stderr と監査結果には偽のヘッダーさえ保存せず、 boolean とリクエスト数のみを残すことをテストします。
  • 点検 CLI は --docker-config を省略できず、HOME や DOCKER_CONFIG からファイルを推測しません。
  • CLI はクレデンシャルの値を decode・hash・出力せず、対象プロジェクト のパッケージ・Docker・credential helper を実行したり、ネットワークに 接続したりしません。
  • symlink、重複 JSON key、サポートしていない lockfile、優先順位がより高い npm-shrinkwrap.json が見つかった場合は、安全だと断定せずに 失敗します。

脆弱パッケージを意図的にインストールするため、npm package の配布は "private": true で防いでいます。製品コードの依存関係として使用しては いけません。 このため npm audit が 0.7.0 を報告するのは予期された結果であり、 例外の範囲と理由は SECURITY.md に記録しました。

実行

要件: Node.js 22.22.2+、24.15.0+ または 26 以上。推奨バージョンは .nvmrc に固定しました。

root@kitploit:~
npm ci --ignore-scripts
npm test
npm run demo
npm run dynamic:demo
npm run audit:fixture
npm run audit:demo
npm run evidence

npm run demo の主要な期待結果:

root@kitploit:~
0.7.0  collision  credential-selected
0.7.1  collision  credential-rejected
0.7.0  exact      credential-selected
0.7.1  exact      credential-selected

Regression result: PASS

npm run dynamic:demo の主要な期待結果:

root@kitploit:~
{
  "vulnerable": {
    "packageVersion": "0.7.0",
    "credentialSelection": "credential-selected",
    "requestCount": 2,
    "authorizationObserved": true,
    "digestVerified": true,
    "networkPolicy": "exact-loopback-only"
  },
  "fixed": {
    "packageVersion": "0.7.1",
    "credentialSelection": "credential-rejected",
    "requestCount": 0,
    "authorizationObserved": false,
    "digestVerified": false,
    "networkPolicy": "exact-loopback-only"
  },
  "regressionResult": "PASS"
}

全体の自動化テストは34個です。npm run evidence は、検査対象の 成果物6個とその完全性を検証する SHA256SUMS を合わせて、合計7個の ファイルを生成します。

このプロジェクトが示す能力

  • 実際の CVE の発生条件をコードレベルで説明し、安全に再現
  • 脆弱バージョンと修正バージョンを同一条件で比較する回帰テスト設計
  • 合成クレデンシャルのローカル送信有無まで動的に比較する loopback-only 試験設計
  • 公開 CVSS とは別に、実際の環境の攻撃前提条件を評価
  • package-lock v1・v2・v3、エイリアスとネストした依存関係を静的に識別
  • 秘密情報を除外した JSON・Markdown 監査証跡の自動生成
  • 発見 → 影響分析 → 修正検証 → 統制へと続く脆弱性管理
  • 実際の認証情報に触れないフェイルセーフ型セキュリティテスト

出典と範囲

  • GitHub Security Advisory GHSA-pf56-329r-95rw
  • NVD CVE-2026-59891

このプロジェクトは限定された教育用の統制評価です。loopback の結果は 合成環境の動作の違いのみを証明し、実際の企業環境におけるクレデンシャルの 露出・侵害や統制効果を証明するものではありません。CISA 資格、ISMS-P 認証、または特定組織の規程準拠を意味するものではありません。Node API guard はロックした依存関係の観察された実行経路のための防御層であり、 OS レベルの network namespace やファイアウォールではありません。

詳細な範囲、テスト、リスクおよび統制のドキュメントは docs/ にあり、 npm run evidence は再現可能な実行証跡と SHA-256 manifest を 生成します。

ツールをダウンロード