1. はじめに
- 「Dirty Frag」という脆弱性が出て、Linuxサーバで一般ユーザからrootになれてしまうとのこと。
- 2026/5/12 時点で、設定変更による回避策はあるとのことで、設定の練習をしてみる。
とりあえずどんな内容かの理解のため、ざっくり検証しただけで、正確性・深堀りはあまりない。
2. 予習
- 「Dirty Frag」の仕組みとかの分かりやすい説明
- 検証用コードおよび回避策の説明
- いけてないカーネルモジュール(esp4, esp6, rxrpc)があって、それを悪用して一般ユーザがrootになれてしまうみたい、というように理解した。
3. やったこと
- 古めのLinuxサーバを用意する。
- 検証用エクスプロイトコードを用いて、脆弱性が存在することを確認する。
- 脆弱性を塞ぐ設定変更後、脆弱性に対応できたことを確認する。
4. 手順
4.1 検証用Linuxサーバの用意
- 過去に取得したAMIを用いて、やや古めのAmazon Linux 2サーバを用意する(2026/2頃のAmazon Linux 2)。
[ec2-user@ip-10-0-0-94 ~]$ uname -a
Linux ip-10-0-0-94.ap-northeast-1.compute.internal 4.14.355-280.713.amzn2.x86_64 #1 SMP Tue Jan 13 00:31:06 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
4.2 検証用コードの実行
- gitとgccをインストールする(検証コードの実行のため)。
- 念のため、sudo 権限のない一般ユーザ(testuser)を用意する。
[testuser@ip-10-0-0-94 ~]$ id
uid=1001(testuser) gid=1001(testuser) groups=1001(testuser)
- testuserでログインして検証コードを実行し、rootになれることを確認する。(コマンドは記載しないが、公開されている検証コード (https://github.com/V4bel/dirtyfrag) を実行すると、rootが取得できる)
4.3 対処設定
- 同サイトに記載されている対処コマンドを実行する。(モジュールの無効化、(ロードされていたら)モジュールのアンロード、メモリキャッシュ解放)
[root@ip-10-0-0-94 ~]# sudo sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; echo 3 > /proc/sys/vm/drop_caches; true"
- 再度検証コードを実行して、今度は失敗(=rootになれない)ことを確認する。
5. その他メモ
- Amazon Linux 2023 の対応状況について
- 2026/5/12時点で、EC2インスタンス起動時の「クイックスタート」で選択できる最新のAMI(東京リージョン Amazon Linux 2023 AMI 2023.11.20260509.0 x86_64 HVM kernel-6.1 / ami-0e668174d57c64015)では、検証コードが失敗した。コードの成功には、CVE-2026-43284とCVE-2026-43500の2つの脆弱性が存在することが必要で、既にCVE-2026-43284のほうのみカーネルが対処済だからかな?と推測。
- 「Amazon Linux Security Center」で脆弱性対応状況(どのCVEに対応しているか)を確認可能。
- esp4などのカーネルモジュールについて
- lsmod しても通常時は出てこなくて、使用される時だけロードされて表示されるようなので、lsmodで出ないからと言って使っていないとは限らない。
- 今回の対処で、esp4, esp6, rxrpcを無効化しているので、機能的には使えなくなるが、脆弱性もなくなる。
6. 所感
- ただやってみただけになってしまったが、人に説明したりデモしたりするにあたり、多少の知識が身についた気がする。
