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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
tanstack-compromise-checker — TanStack npm サプライチェーン攻撃の兆候(CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx)を検出するシェルスクリプト | Kitploit
ツール/GitHubGitHub/fabriziosalmi/tanstack-compromise-checker
侵害指標 (IOC) 管理脆弱性スキャナーコンテナセキュリティフォレンジックマルウェア分析DevSecOpsシークレット検出脅威インテリジェンスサプライチェーンセキュリティ

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
インシデントレスポンス
GitHubfabriziosalmi/tanstack-compromise-checker

tanstack-compromise-checker

TanStack npm サプライチェーン攻撃の兆候(CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx)を検出するシェルスクリプト

リポジトリを見る
216812日前未レビュー

tanstack-compromise-checker

TanStack npm サプライチェーン攻撃の兆候を、開発者マシン、リポジトリ、または CI ランナー上で検出します。Bash スクリプト、Docker イメージ、GitHub Action — 同じエンジンを 3 つのエントリポイントから利用できます。

CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx

2026年5月11日、攻撃者は GitHub Actions のキャッシュポイズニングを利用して、42 の @tanstack/* パッケージにわたって 84 の悪意のあるバージョンを公開しました。このペイロードは、GitHub トークン、npm トークン、AWS/GCP/Azure の認証情報を窃取し、盗まれたトークンが失効した瞬間に ~/ を消去するデッドマンズスイッチデーモンをインストールします。

クイックスタート

自分のいる環境に合ったエントリポイントを選択してください。

macOS / Linux / WSL2 / Git Bash

TAG=v1.0.0
curl -fsSLO https://github.com/fabriziosalmi/tanstack-compromise-checker/releases/download/$TAG/check.sh
curl -fsSLO https://github.com/fabriziosalmi/tanstack-compromise-checker/releases/download/$TAG/check.sh.sha256
sha256sum -c check.sh.sha256
bash check.sh --online

Docker — Docker が動作するすべての OS(Windows を含む)で動作します

docker run --rm -v "$PWD":/scan \
  ghcr.io/fabriziosalmi/tanstack-compromise-checker:v1.0.0 \
  /scan true fail tanstack-findings.json '' GHSA-g7cv-rxg3-hmpx

イメージはマルチアーキテクチャ(linux/amd64、linux/arm64)で、GitHub OIDC による署名付きビルドの provenance(来歴証明)が付属しています。実行前に検証してください:

gh attestation verify \
  oci://ghcr.io/fabriziosalmi/tanstack-compromise-checker:v1.0.0 \
  --repo fabriziosalmi/tanstack-compromise-checker

GitHub Action — CI で侵害された依存関係をブロックします

permissions: {}

jobs:
  check:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v6
        with:
          persist-credentials: false
      - uses: fabriziosalmi/tanstack-compromise-checker@v1
        with:
          scan-dir: .
          online: 'true'
          fail-on: fail

完全にハードニングされたワークフローは .github/workflows/tanstack-check.yml にあり、このリポジトリ自身が自分に対して実行しているのと同じワークフローです。

スクリプトがチェックする内容

#チェック説明
1デッドマンズスイッチ~/.local/bin/gh-token-monitor.sh、LaunchAgents + LaunchDaemons(macOS)、systemd ユーザー + システムユニット(Linux)、実行中のプロセス
2永続化シェルの rc ファイル、ユーザー/システムの crontab、/etc/cron.*、XDG オートスタート、グローバル git の core.hooksPath
3認証情報機密環境変数、~/.npmrc、~/.yarnrc.yml、~/.aws/credentials、~/.config/gh/hosts.yml、~/.netrc、~/.docker/config.json、~/.kube/config、.env* ファイルの列挙
4ネットワーク IOC確立された外向き TCP 接続を持つ実行中の node プロセス(ヒューリスティック、手動レビュー)
5リポジトリスキャンpackage.json の宣言済み依存関係 + ロックファイルの固定バージョン(package-lock.json、yarn.lock、pnpm-lock.yaml)
6インストール済みnode_modules/@tanstack/*/package.json を既知の悪意のあるバージョンリストと照合し、--online 時には npm レジストリの time[<version>] とも照合
7Actions のヒント.github/workflows/* から pull_request_target、--ignore-scripts の欠落、actions/cache の使用をスキャン
8Mini Shai-Hulud IOCnode_modules 内のペイロードファイル(router_init.js、tanstack_runner.js)、@tanstack/setup の optionalDependency、AI ツール設定の改ざん、ソース内の C2 ドメイン、攻撃者のコミット作成者 + ブランチパターン、身代金マーク付き npm トークン、二次的なワーム伝播パッケージ、さらに未知のペイロード形状に対する情報レベルのヒューリスティック

--online を使用すると、スクリプトは実行時に GHSA アドバイザリも取得するため、検出カバレッジはハードコードされたバージョンリストではなく、アドバイザリの最新状態に追従します。

影響を受けるファミリー: @tanstack/router、@tanstack/react-router、@tanstack/history、@tanstack/start、@tanstack/eslint-plugin-router、および関連パッケージ。

影響を受けないファミリー: @tanstack/react-query、@tanstack/react-table、@tanstack/react-virtual、@tanstack/form、@tanstack/store。

使用方法

# Quick check (current user's home)
bash check.sh

# Online mode: query the GHSA advisory and npm registry publish-time
bash check.sh --online

# Scan a specific directory
bash check.sh --scan-dir /path/to/your/repos

# JSON output for CI/SIEM integration
bash check.sh --json > findings.json

# Suggest pin commands for affected repos (dry-run)
bash check.sh --scan-dir /path/to/repos --fix

# Provide an extended known-bad list
bash check.sh --bad-versions-file ./extra-bad-versions.txt

すべてのオプション

フラグ説明
--scan-dir DIRスキャンするルートディレクトリ(デフォルト: $HOME)。/、/etc、/usr などのシステムディレクトリのスキャンは拒否します。
--onlineGHSA アドバイザリと npm レジストリの time[<version>] を照会して侵害を確認します。デフォルトはオフ — オプトインです。
--ghsa GHSA-ID--online で使用するアドバイザリ ID を上書きします(デフォルト GHSA-g7cv-rxg3-hmpx)。
--attack-window-start ISO、--attack-window-end ISO--online で使用する公開時刻ウィンドウを上書きします。
--fix影響を受けるリポジトリに推奨される固定コマンドを出力します(デフォルトはドライラン)。
--apply--fix と併用: 実行をオプトインします。現在も盲目的な update は拒否されます。手動での固定(ピン留め)が必要です。
--yes、-y--apply の確認プロンプトをスキップします。
--json結果を JSON として stdout に出力します(--quiet を暗黙的に有効化)。
--bad-versions-file F既知の悪性リストにエントリ(pkg@version、1行に1つ)を追加します。
--no-colorANSI カラーを無効にします。
--quiet、-qチェックごとの出力を抑制し、サマリーのみを表示します。
-h、--helpヘルプを表示します。

終了コード

コード意味
0クリーン — スキャン範囲内に指標なし
1警告のみ — レビュー推奨
2失敗 — 侵害の指標が存在
3ツール/使用方法のエラー

セキュリティ態勢

このリポジトリは、検出対象と同じ攻撃クラスから自身を防御しています。具体的には:

  • すべての GitHub Action の uses: は、浮動タグではなく 40 文字のコミット SHA に固定されています。
  • Docker ベースイメージは、不変のマルチアーキテクチャマニフェストダイジェストに固定されています。
  • すべてのワークフローはトップレベルで permissions: {} を宣言し、ジョブは必要なものだけを付与します。
  • actions/checkout は persist-credentials: false で呼び出されるため、認証済みの git リモートが $GITHUB_WORKSPACE に残りません。
  • step-security/harden-runner はすべてのワークフローの最初のステップであり、ランナーの egress(外部通信)を監視します。
  • OpenSSF Scorecard は毎週と main へのプッシュのたびに実行され、結果は SARIF としてアップロードされます。
  • 各リリースは Docker イメージの SLSA ビルド provenance 証明を公開します。誰でも gh attestation でオフライン検証できます。
  • 各リリースには、すべてのインストール可能なアーティファクトを対象とした check.sh.sha256 が同梱されています。

完全なポリシーは SECURITY.md にあります。

しないでください: このツールを含むあらゆるセキュリティツールに curl | bash をパイプで渡さないでください。常にダウンロードし、チェックサムを検証し、確認してから実行してください。

出力例

━━  1 / 8  DEAD-MAN'S SWITCH ARTEFACTS
  ✔  No dead-man's switch artefacts found

━━  2 / 8  PERSISTENCE VECTORS
  ✔  No persistence vectors detected

━━  3 / 8  TOKEN / CREDENTIAL EXPOSURE
  ✔  No credential exposure detected

━━  4 / 8  NETWORK INDICATORS
  ✔  No node TCP connections currently established (or none observable)

━━  5 / 8  REPO SCAN — package.json + lockfiles
  ℹ  Found 12 package.json + 8 lockfile(s)
  ✔  No compromised family declared in any package.json
  ✔  No compromised pins found in any lockfile

━━  6 / 8  INSTALLED node_modules — direct version check
  ✔  No compromised packages in installed node_modules

━━  7 / 8  GITHUB ACTIONS HARDENING HINTS
  ✔  No risky GitHub Actions patterns detected (in scanned scope)

━━  8 / 8  MINI SHAI-HULUD PAYLOAD + AUXILIARY IOCs
  ✔  No Mini Shai-Hulud payload / auxiliary IOCs detected

━━  SUMMARY
  Passed: 8    Warnings: 0    Failed: 0
  Scope : /Users/alice/dev
  ✔  No indicators of compromise within scope: /Users/alice/dev
  Note: a clean result for /Users/alice/dev does not certify the rest of the system.

侵害された場合

デーモンを停止する前に GitHub トークンを失効させないでください — トークンが失効した瞬間にデッドマンズスイッチが rm -rf ~/ を実行します。

  1. まずデーモンを停止します:
    • macOS 14+: launchctl bootout gui/$UID ~/Library/LaunchAgents/com.user.gh-token-monitor.plist
    • macOS レガシー: launchctl unload ~/Library/LaunchAgents/com.user.gh-token-monitor.plist
    • Linux: systemctl --user stop gh-token-monitor && systemctl --user disable gh-token-monitor
  2. スクリプトを削除します: rm -f ~/.local/bin/gh-token-monitor.sh
  3. その後に失効とローテーションを行います: GitHub トークン、npm トークン、AWS/GCP/Azure 認証情報、SSH キー、SSH エージェント。
  4. GitHub の監査ログを確認します: https://github.com/settings/security-log
  5. ~/.aws/credentials、~/.kube/config、~/.config/gh/hosts.yml、~/.npmrc を確認します。

依存関係

bash スクリプトに必要なもの:

  • bash 4+
  • jq(推奨)— package-lock.json の解析用
  • python3(オプションのフォールバック)— jq がない場合に使用
  • curl — --online に必要
  • lsof または ss(オプション)— ネットワーク IOC ヒューリスティック用
ツールをダウンロード