
CVE-2026-81000のPython PoC。TUN/OVSの境界外書き込みとpipe_bufferフラグ操作によりroot権限を取得するLinuxカーネルのローカル権限昇格。
[!WARNING] このPoCは、防御担当者、メンテナー、および許可されたセキュリティチームが、自身が所有する、または明示的にテストを許可されたシステム上で、パッチ、緩和策、検知、および露出を検証することを支援するためだけに提供されています。
この資料の使用が合法で、許可され、管理され、隔離されたテスト環境で実施されることを保証する責任は、あなただけにあります。
[!WARNING] このPoCは破壊的です。 ロールバックなしで
/etc/pam.d/suを変更します。 誤った位置への上書きは、無関係なカーネルメモリを破壊し、マシンをハング/クラッシュさせる可能性があります。使い捨てのVM/一時ホストでのみ実行してください。
PoCの動作:
/etc/pam.d/su からの1バイトのファイルバッキングバッファを含むパイプリングの隣に、4 KiBのskbヘッドをグルーミングするpipe_buffer に PIPE_BUF_FLAG_CAN_MERGE を設定できる候補TUNパケットを送信し、pam_permit.so を書き込み、最後に su - root で締めくくる。PoCは簡潔さを保つため、x86-64を前提とし、それをターゲットとしています。理論上、このバグはアーキテクチャ固有のものではないはずです。
完全を期すため網羅的に列挙します:
6.19.10-300.fc44.x86_64 を搭載した Fedora 44 Server、または 6.17.0-40-generic を搭載した Ubuntu 24.04.4 (これらのチェックを削除して試すこともできますが、他のディストリビューション/カーネルバージョンではターゲットごとのカスタマイズ/グルーミングが必要になる場合があります)pam_rootok.so を含む未変更の /etc/pam.d/su、および pam_rootok.so と pam_permit.so のPAMモジュールCAP_NET_ADMIN を伴う非特権ユーザー/ネットワーク名前空間の作成/dev/net/tun、およびTUN、Open vSwitch datapath、netkit、VXLANのカーネルサポートip、unshare、true、su、さらに直接の unshare -Urn が拒否される場合はUbuntu上の とロード済みの プロファイル両ターゲットは29 vCPU、4 GBおよび32 GB RAMでテストされ、後者の方が信頼性が高かったです。他のCPU/メモリの組み合わせでは、より多くのグルーミングが必要となり、上書きが無関係なメモリにリダイレクトされる可能性があります。
passwd エントリを持つ非特権ユーザーとして実行してください。
python3 tunderflow_root_repro.py
aa-exectrinity