Arch LinuxのPinTheft脆弱性、root権限取得のPoC公開
Linuxカーネルに潜んでいた権限昇格の脆弱性「PinTheft」の実証コードが公開された。一般ユーザーからroot権限を奪える手口で、主に影響を受けるのはArch Linuxだ。
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シェルに落ちてくる。
ディスク上のバイナリは書き換わらないが、メモリ上のキャッシュが汚染された状態でシステムを放置すると危険だ。suやpasswdなど日常的な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(ローカル権限昇格)ラッシュがある。
|
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が対象 本記事の主題 |
直近ではDirtyDecrypt(DirtyCBCとも呼ばれる)のPoCが週末に公開されたばかりで、これはDirty Frag、Fragnesia、Copy Failと同じ脆弱性クラスに属する。Copy FailはCISA(米国サイバーセキュリティ・インフラセキュリティ庁)のKEVカタログに追加されており、政府機関に5月15日までのパッチ適用を命じた。
Linuxカーネルの特定の領域は、攻撃者からも注目されている。複数のセキュリティチームが同じバグを独立に見つけたのがその証左だ。PinTheftはパッチが当たっているが、カーネルアップデートが遅れがちな環境では依然として対処が必要だ。カーネルアップデートの適用と、RDSが不要なら無効化しておくのが現状の最短の防衛線になる。
| 脆弱性名 | CVE | 主な影響先 | PoC | 実攻撃 | パッチ |
|---|---|---|---|---|---|
| PinTheft | 未割当 | Arch Linux (RDS有効環境) |
あり | なし | 済 |
| DirtyDecrypt | CVE-2026- 31635 |
Fedora / Arch / openSUSE |
あり | なし | 済 |
| Copy Fail | CVE-2026- 31431 |
ほぼ 全ディストリ |
あり | あり | 済 |
参照元
関連記事
- LinuxのDirtyDecrypt、パッチ済み脆弱性のPoCが公開
- Fragnesia公開、Linux LPE 2週で3件目
- Windowsゼロデイ「BlueHammer」公開 研究者とMSRCの調整経緯を整理
- Linuxに19年潜んだ権限昇格の欠陥が発覚。脆弱性「CIFSwitch」CVE未割り当て
- Linuxカーネル、AI支援バグ報告を公開扱いに
- Linuxカーネル新脆弱性、root所有ファイルが読まれる
- Linuxカーネルにキルスイッチ案、未修正脆弱性に対応
- Linuxでroot権限昇格につながる「Dirty Frag」 パッチ未提供の影響範囲
- PackageKitに12年潜んだ脆弱性、AIが発見を支援
- ASP.NET Core、パッチが脆弱性を呼んだ緊急OOB