
CVE-2022-0847 (Dirty Pipe) の概念実証エクスプロイトです。これは、非特権ユーザーが読み取り専用ファイルに書き込みできるようにする Linux カーネルの脆弱性です。
CVE-2022-0847 は Linux カーネル 5.8 から 5.16 に影響します。Linux カーネルのパイプ実装における競合状態を悪用し、メモリにキャッシュされた読み取り専用ファイルページに任意のデータを書き込みます。
/etc/passwd の改ざん).
├── src/
│ └── exploit.c # Dirty Pipe エクスプロイトのソースコード
├── run.sh # QEMU テスト環境ランチャー
├── initramfs/ # テスト用ルートファイルシステム
├── debugfs.cpio # 圧縮された initramfs
└── README.md # このファイル
libelf-dev (カーネルビルド用)gcc ./src/exploit.c -o ./src/exploit -static -pthread
./run.sh
# QEMU シェル内:
/home/exploit
cat /etc/passwd # パスワードハッシュが書き込まれたことを確認
su root # root に切り替え (エクスプロイト後はパスワード不要)
./src/exploit
このエクスプロイトは /etc/passwd を改ざんし、既知のパスワードハッシュを持つ root ユーザーを注入します。
このエクスプロイトは以下のように動作します:
PIPE_BUF_FLAG_CAN_MERGE フラグを設定するsplice() を使用してファイルページをパイプバッファに接続するこれにより、COW (Copy-on-Write) をトリガーせずに読み取り専用メモリページに書き込むことができます。
/proc/self/mem へのアクセスを制限するこのエクスプロイトは、教育および許可されたセキュリティテストの目的でのみ提供されています。コンピュータシステムへの不正アクセスは違法です。
Minh Vu ([email protected])