
Linuxカーネルのio_uring AF_VSOCK参照カウントのバグを標的としたローカル権限昇格エクスプロイト。ページキャッシュの操作により/usr/bin/suを上書きしてrootシェルを取得する。許可されたセキュリティ研究およびテストを目的とする。
HackSpeak 配布ミラー。このリポジトリは MaherAzzouzi/vsockdrop の配布ミラーであり、コードはアップストリームと同一です。アップストリームには LICENSE が添付されていないため、ミラーは配布慣例に従って MIT License、Copyright (c) 2026 HackSpeak を採用しています。ソースコードの著作権は原作者 MaherAzzouzi に帰属します。
⚠️ 完全なローカル権限昇格(LPE)エクスプロイトを含みます——
/usr/bin/suの page-cache を変更します(CoW ファイルシステムではディスクに永続化される可能性があります)。セキュリティ研究、脆弱性検証、および許可を得たテストのみを目的としており、自分が所有する、または明示的に許可された隔離環境でのみ実行してください。許可のないシステムでは使用しないでください。
VsockDrop(CVE-2026-53365) は Linux カーネルの io_uring ゼロコピー送信パス(AF_VSOCK)における参照カウント処理の不備を突く脆弱性で、権限のないユーザーによるローカル権限昇格(LPE) を引き起こす可能性があります。
io_uring は SKBFL_MANAGED_FRAG_REFS を使用するが、vsock パスはこのフラグに従わない → __skb_frag_unref() が managed page に対して put_page() を呼び出す → 送信のたびに余分な put_page が実行され、pin カウントが直接減少する;SEND_ZC により refcount = 1 + 1024 を 0 まで使い切る → 依然 pin されている page が PCP freelist に解放される;pread で /usr/bin/su の 0 ページ目を読み込み、LIFO freelist から解放されたばかりの PFN を取り戻す → その page は io_uring fixed buffer と su page-cache の両方にエイリアスされる;write_fixed/read_fixed を使用して su page 内の PT_INTERP 文字列を攻撃者の loader パスに書き換える;exec("/usr/bin/su")(setuid-root)→ カーネルが攻撃者の loader をインタープリタとしてマッピング → root 資格情報で侵入 → root shell。make
./exploit
⚠️ 危険な操作:exploit は /usr/bin/su の page-cache 内のコンテンツを変更します。CoW ファイルシステム(Btrfs、ZFS など)では、この変更がディスクに永続化される可能性があります。破棄可能な隔離環境でのみ実行してください。