先日の Copy Failに続き、Linuxカーネルのローカル権限昇格脆弱性として、DirtyFrag が公開された。2026年5月8日時点ではCVE番号はまだ割り当てられておらず、主要ディストリビューション向けの修正パッケージもまだ揃っていない。
5月10日追記: kernel.org では修正版の7.0.5, 6.18.28, 6.12.87, 6.6.138, 6.1.172, 5.15.206, 5.190.255 が公開されている。
ローカル権限昇格なので、インターネット越しに直接rootを取られる種類の脆弱性ではない。しかし、すでに一般ユーザー権限でサーバに入られている場合、あるいはWebアプリケーション等の別の脆弱性で一般ユーザー権限のコード実行に到達された場合に、そこからroot権限へ進まれる可能性がある。
ひとまず何をすればよいのか
Linuxのカーネルモジュール(ドライバ)のうち、 esp4、esp6、rxrpc の3つのモジュールに脆弱性がある。幸い、カーネルに静的リンク(固定で埋め込み)はされていない場合がほとんどなので、それらのファイルが自動で読み込まれないようにするための設定ファイルを作成することで修正が配布されるまで暫定的に回避できる。
/etc/modprobe.d/dirtyfrag.conf ファイルを作成
install esp4 /bin/false
install esp6 /bin/false
install rxrpc /bin/false
すでにモジュールがロードされているときのためにアンロード(ロードされていない場合はエラーになるが後述の静的リンクに該当しない場合は無視してよい)
rmmod esp4 esp6 rxrpc
ただし、これらを実際に業務で使っている環境では影響が出てしまうため、IPsec VPNやAFS/Kerberos関連の構成がある場合は、無効化前に用途を確認する必要がある。一方で、WireGuard、OpenVPN、Tailscaleのような一般的なVPN構成は、少なくとも公開情報上はこのモジュール無効化の直接影響を受けないとされている。
問題のモジュールが静的リンクされてしまっていないかチェックする
今回のモジュールが万一カーネルに固定で埋め込まれてしまっている場合は上記対応策は効かない(おそらくそのような環境は稀だが)ので、念の為チェックする場合はmodinfoコマンドを使う。
modinfo esp4 esp6 rxrpc
RHEL系(AlmaLinux,RockyLinuxなど)のディストリビューションでは rxrpc が完全に存在しない場合もあるようなので、その場合は esp4 / esp6 のみチェックする。
静的リンクされてしまっている場合は「filename: (builtin)」のような表示が出る。その場合は修正が降りてきてからシステムを再起動するかブートローダーに initcall_blacklistを書いて再起動するしかなく、とにかく再起動以外に打つ手がない。
もう少し説明
この脆弱性には独立した2種類の攻撃手法が含まれており、片方は esp4、esp6 の欠陥を利用するもの、もう片方は rxrpc の欠陥を利用するものだ。PoC(実証コード)には片方を試してだめだったらもう片方を試すという二段構えの攻撃が実装されており、どちらかを塞げば良いというものではない。
不安な方へ
「最近こういうものがよく騒ぎになるが、サーバー管理者が辞めてしまってどう対処したら良いかわからないし、相談する相手がいない」のような企業様:
お気軽にお問い合わせください。
参考情報
- Dirty Frag: Universal Linux LPE - oss-security
- V4bel/dirtyfrag - GitHub
- Dirty Frag Linux Kernel Vulnerability Made Public - Phoronix
- Dirty Frag Mitigation and Kernel Update - CloudLinux