
OVS カーネルデータパスを悪用して資格情報を破壊し、sudoers インジェクション経由で root を取得する、CVE-2026-64531 のローカル権限昇格 PoC。
[!WARNING] このPoCは、防御者、保守担当者、および明示的にテストを許可された セキュリティチームが、所有または明示的なテスト許可を得たシステム上で、 パッチ、緩和策、検出、および露出を検証することを唯一の目的として提供されます。
この資料の使用が、合法的であり、許可されたものであり、管理された状態で、 隔離されたテスト環境で実施されることを保証する責任は、すべて利用者にあります。
[!WARNING] このPoCは破壊的です。 成功すると、稼働中のカーネル資格情報を破壊し、
/etc/sudoers.dまたは/etc/sudoersを変更し、rootシェルを開き、 安全でない後始末を避けるために、切り離されたプロセスと破損したOVS状態を生かしたままにします。使い捨てのVM/使い捨てホストでのみ実行してください。再起動すると残りのプロセスは停止しますが、 sudoersの変更は元に戻りません。
PoCの動作:
nla_len をラップしますsudo -n bash を起動します。このPoCは、シンプルにするため、x86-64を前提とし、それを対象としています。理論上、このバグはアーキテクチャ固有ではないはずです。
unshare -Urn)sudo、bash、unshare、idpasswd エントリを持つ非特権ユーザーとして実行してください。
python3 ovswrap-poc.py
PoCは自動的に unshare -Urn を試み、AppArmorによってブロックされた場合は aa-exec -p trinity -- unshare -Urn にフォールバックします。
このPoCには、約800の正確なx86-64カーネルビルドに対する事前導出値が含まれており、 照合には次のものを使用します:
uname -r
uname -v
uname -m
一致するレコードには、ローカルシンボル、BTF、デバッグパッケージ、pahole は不要です。対象外のビルドの場合、PoCは確認を求め、次のものから動的導出を試みます:
System.map またはゼロ以外の /proc/kallsyms;pahole(あらかじめインストールされている必要があります)。値の導出に失敗しても、カーネルが影響を受けていないことを意味するわけではありません。動的導出はさまざまな理由で失敗する可能性があるためです。影響を受けているかどうかを判断するより良い方法については、解説 を参照してください。