Arch LinuxのPinTheft脆弱性、root権限取得のPoC公開

Linuxカーネルに潜んでいた権限昇格の脆弱性「PinTheft」の実証コードが公開された。一般ユーザーからroot権限を奪える手口で、主に影響を受けるのはArch Linuxだ。

Arch LinuxのPinTheft脆弱性、root権限取得のPoC公開

Linuxカーネルに潜んでいた権限昇格の脆弱性「PinTheft」の実証コードが公開された。一般ユーザーからroot権限を奪える手口で、主に影響を受けるのはArch Linuxだ。


パッチ済みのはずが、PoC付きで世に出た

Linuxカーネルに存在していた権限昇格の脆弱性PinTheftに対し、動作する実証コード(PoC)が今月公開された。この脆弱性はすでに今月初めにパッチが当たっているが、複数のセキュリティチームが独立に同じバグを発見していたことが判明し、V12セキュリティチームはPoCの公開に踏み切った。CVE番号はまだ割り当てられていない。

PinTheftを発見したのはV12のアーロン・イソー(Aaron Esau)氏だ。技術的な問題はLinuxカーネルのRDS(Reliable Datagram Sockets)というネットワーク機能の送信処理に潜んでいた。

PinTheftは、RDS zerocopy処理のdouble-freeをきっかけに、io_uringの固定バッファを通じてページキャッシュを書き換えるLinuxローカル権限昇格エクスプロイトだ。

rds_message_zcopy_from_user()という関数が、ユーザーのメモリページを1ページずつ確保する処理を行う。途中のページでフォルト(アクセス障害)が発生した場合、エラー処理が確保済みのページを解放し、さらにRDSのメッセージ後処理が同じページを二重に解放してしまう。このダブルフリーを繰り返すことで、ページの参照カウントを少しずつ奪える。

「借りた」参照を武器に変える仕掛け

参照カウントを奪うだけでは権限は取れない。PoCはここにio_uringを組み合わせる。

io_uringとはLinuxの非同期I/O APIだ。PoCはまず匿名ページをio_uringの固定バッファとして登録し、FOLL_PINという内部参照を1024個積み上げる。次にRDSの失敗送信を1024回繰り返してその参照を全部奪い取り、ページを解放する。解放されたページを今度はSUIDルートバイナリのページキャッシュとして再確保し、io_uringが持ち続けている古いポインタでそのキャッシュを上書きする。

SUIDバイナリのページキャッシュに小さなELFペイロードを書き込み、そのバイナリを実行するとrootシェルに落ちてくる。

ディスク上のバイナリは書き換わらないが、メモリ上のキャッシュが汚染された状態でシステムを放置すると危険だ。supasswdなど日常的なSUIDプログラムを誰かが実行した瞬間にペイロードが動く。テスト後はキャッシュをフラッシュするか再起動が必要で、V12はこの点を強く警告している。

Arch Linuxに集中する理由

攻撃が成立するには条件がある。4つの前提条件がすべて揃った環境でのみ動作する。RDSモジュールがロードされている、io_uringが有効、読み取れるSUIDルートバイナリが存在、x86_64環境の4点だ。

このうちRDSモジュールはArch Linuxでのみデフォルトで有効になっている。V12が主要なLinuxディストリビューションを調べたところ、他のほとんどのディストリビューションはRDSをデフォルトで読み込んでいなかった。Arch Linux以外でもRDSを手動で有効にしている環境や、io_uringを許可しているコンテナ環境は注意が必要だ。

V12は次のコマンドで一時的な対処ができると案内している。

rmmod rds_tcp rds
printf 'install rds /bin/false\ninstall rds_tcp /bin/false\n' > /etc/modprobe.d/pintheft.conf

これはRDSモジュールを無効化してロードを永続的にブロックする設定だ。なお、この設定はRDSを使ったネットワーク通信に影響するが、一般的なデスクトップ・サーバー環境ではRDSを使うアプリケーション自体がほとんどない。

LPEが続く、Linuxカーネルの5月

PinTheftが公開された背景には、ここ数週間のLinuxカーネルLPE(ローカル権限昇格)ラッシュがある。

2026年5月 Linux LPE 開示タイムライン
4月22日
Copy Fail CVE-2026-31431 Theori / Xintが発見。2017年以降の
ほぼ全ディストリに影響。732バイトの
Pythonスクリプトで100%安定動作
実攻撃確認済み
5月初旬
CISA が KEV に追加 Copy Failを既知悪用脆弱性カタログに登録。
米政府機関に5月15日までの
パッチ適用を命令
政府機関対応義務化
5月19日
DirtyDecrypt CVE-2026-31635 Copy Failと同じ脆弱性クラス。
Fedora / Arch Linux / openSUSEに影響。
PoCが週末に公開
パッチ適用済み
5月20日
PinTheft CVE未割当 V12セキュリティが複数チームとの
重複発見確認後にPoC公開。
主にArch Linuxが対象
本記事の主題
※ Copy Failの日付はCVE割当日。PinTheftのCVE番号は本記事執筆時点で未割当

直近ではDirtyDecrypt(DirtyCBCとも呼ばれる)のPoCが週末に公開されたばかりで、これはDirty Frag、Fragnesia、Copy Failと同じ脆弱性クラスに属する。Copy FailはCISA(米国サイバーセキュリティ・インフラセキュリティ庁)のKEVカタログに追加されており、政府機関に5月15日までのパッチ適用を命じた。

Linuxカーネルの特定の領域は、攻撃者からも注目されている。複数のセキュリティチームが同じバグを独立に見つけたのがその証左だ。PinTheftはパッチが当たっているが、カーネルアップデートが遅れがちな環境では依然として対処が必要だ。カーネルアップデートの適用と、RDSが不要なら無効化しておくのが現状の最短の防衛線になる。

2026年5月 Linux LPE 比較
脆弱性名 CVE 主な影響先 PoC 実攻撃 パッチ
PinTheft 未割当 Arch Linux
(RDS有効環境)
あり なし
DirtyDecrypt CVE-2026-
31635
Fedora / Arch /
openSUSE
あり なし
Copy Fail CVE-2026-
31431
ほぼ
全ディストリ
あり あり
※ DirtyDecrypt / Copy Failはいずれもページキャッシュ上書きによるroot奪取という共通の攻撃クラスに属する

参照元

関連記事

この記事を共有する

Read more