05/20/2026にLinux KernelのLPE脆弱性(PinTheft: CVE未アサイン)が公開されました。RDSモジュールが有効になっている必要があり、影響範囲は限定されそうです。今回はこちらの脆弱性の概要と、各ディストリビューションの対応について纏めます。
[過去関連リンク(最新5件)]
- Linux Kernelの脆弱性(ssh-keygen-pwn: Important: CVE-2026-46333)
- Linux KernelのLPE(ローカル権限昇格)の脆弱性(Fragnesia(CopyFail3): CVE-2026-46300)
- Linux KernelのLPE(Local Privilege Escalation)脆弱性(Dirty Frag: CVE-2026-43284, CVE-2026-43500: CopyFail2)
- Linux Kernelのローカルユーザによる権限昇格の脆弱性(Copy Fail: CVE-2026-31431)
- Linux Kernelの脆弱性(CVE-2025-40345〜CVE-2025-71101)
一次情報源
CVSS/プライオリティ
- CVE未アサインのため、後ほど更新します。
修正方法
各ディストリビューションの情報を確認してください。
概要(詳細は一次情報源をご確認ください)
またV12 security teamによりみつけられた脆弱性になります。
今回のLPEが発現する前提条件としては
CONFIG_RDSCONFIG_RDS_TCPCONFIG_IO_URINGio_uring_disabled=0- SUID-rootバイナリにRead権限でアクセスできること
となるため、RDSが組み込まれていない/モジュールとしてロードされていないLinux Kernelは対象外になります。
今回のバグは、RDSのzerocopy送信パスに存在していました。rds_message_zcopy_from_user()関数は、ユーザーページを一回に付き1pageずつ固定します。後続のページでエラーが発生すると、エラーパスは既に固定されていたpageを破棄しますが、zcopy notifierがクリアされた後もscatterlistのエントリとエントリ数が有効なまま残っているため、その後のRDSメッセージクリーンアップ処理が破棄を行います。これにより、zerocopy送信が失敗するたびに、最初のページから1つの参照が奪われる可能性があります。
PoCではio_uringを用いて、このrefcountバグを活用しています。anonymous pageを固定バッファとして登録し、そのページに1024 referenceのFOLL_PINバイアスを設定します。これにより、RDS zerocopy送信の失敗によってこれらの参照を奪い取ってpageを解放し、SUID-rootバイナリのページキャッシュとして再利用し、staleのio_uring固定バッファページポインタを使用して、そのページキャッシュを小さなELFペイロードで上書きします。これにより、SUID-rootバイナリを実行すると、ルートシェルに移行します。
PoC
一次情報源でPoCが公開されています。
緩和策
RDSに存在するバグになるため、RDSモジュールをunloadすることで迂回策になります。
一次情報源にも有りますが、修正済みのLinux Kernelが提供されるまでは、下記のようにモジュールを読み込まないようにしましょう。
rmmod rds_tcp rds
printf 'install rds /bin/false\ninstall rds_tcp /bin/false\n' > /etc/modprobe.d/pintheft.conf対象となるディストリビューション
- RDSがデフォルトで入っているかはこちらで確認できます
- 自分のLinux上でどうなっているかは、/boot以下のConfig-XXを見たほうが確実です。
cat /boot/config-$(uname -r) | less主なディストリビューションの対応方法
詳細は、各ディストリビューションの提供元にご確認ください
CVEがアサインされ次第、情報を更新します。
対処方法
各ディストリビューションの案内に従い、アップデートを行ってください。
