Linux KernelのLPE(ローカル権限昇格)の脆弱性(Fragnesia(CopyFail3): CVE-2026-46300)

05/14/2026にLinux KernelのLPE(ローカル権限昇格)の脆弱性(Fragnesia: CVE-2026-46300)が公開されました。こちらの脆弱性は、以前に紹介したDirtyFragの仲間(CopyFail3)です。Linux Kernel中の同じモジュールに存在するバグのため、緩和策はDirtyFragと同じになります。今回はこちらの脆弱性の概要と、各ディストリビューションの対応について纏めます。

[過去関連リンク(最新5件)]

CVSS/プライオリティ

  • CVE-2026-46300
    • 影響するバージョン
      • N/A
    • Priority/CVSS SCORE
      • NVD(CVSSv4): Not disclosed
      • NVD(CVSSv31): Not disclosed
      • Red Hat(CVSSv4): Not disclosed
      • Red Hat(CVSSv31): 7.8 Important
    • CVSS Vector
      • NVD(CVSSv4): Not disclosed
      • NVD(CVSSv31): Not disclosed
      • Red Hat(CVSSv4): Not disclosed
      • Red Hat(CVSSv31): CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
    • EPSS Score/Percentile
      • DATE(JST): 2026-05-13
      • EPSS: Not Available
      • Percentile: Not Available

修正方法

各ディストリビューションの情報を確認してください。

CVE概要(詳細はCVEのサイトをご確認ください)

  • https://www.cve.org/CVERecord?id=CVE-2026-46300
    • ローカルの権限昇格(LPE)FragnesiaはDirtyFragで紹介されたESP/XFRMの脆弱性とは異なる脆弱性ですが、仕組みは同じであり、緩和策もまた同様のものになります。FragnesiaではLinux XFRM ESP-in-TCPのバグを悪用し、競合状態を必要とせずに、読み取り専用ファイルのカーネルページキャッシュに任意のバイトを書き込むことを可能にしています。 この手法は、以前にあったDirtyPipeを含むページキャッシュ書き込みバグを拡張したものです。TCPソケットが、データがspliceによりファイルから受信キューに入れられた後にespintcp ULPモードに移行すると、カーネルはキューに入れられたファイルページをESP暗号文として処理します。 カウンタブロックポジションが2で、0byteのAES-GCMキーストリームバイトが、キャッシュされたファイルページに直接XORされます。目的のキーストリームバイトを生成するIV nonceを選択することで、ファイル内の任意のターゲットバイトを任意の値に設定できます。

Exploit

  • エクスプロイトでは、各キーストリームバイトを対応するNonceにマッピングする256のLookup Tableを作成し、ペイロードを反復処理して、変更が必要な各バイトに対してsplice/ULPを実行しています。ページキャッシュ内の/usr/bin/suの最初の192バイトに対して、位置に依存しない小さなELFスタブ(setresuid/setresgid/execve /bin/sh)を書き込み、execve(“/usr/bin/su”)を呼び出してroot shellを取得します。ページキャッシュの変更はディスクにバックアップされず、ディスク上のバイナリは変更されません。
  • この脆弱性を悪用すると、namespace内でroot shellが起動されるため、そのshellから真のroot権限を取得することはできません。しかし、/usr/bin/su はページキャッシュ内で置き換えられたままになるため、これを別途実行すれば真のroot権限を取得できるそうです。最初は誤解を招くかもしれませんが、この脆弱性と悪用方法は実際に存在します。

緩和策

今回の脆弱性もXFRM ESP-in-TCPに問題があるため、緩和策はDirtyFragと同じく

rmmod esp4 esp6 rxrpc
printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf

となります。

主なディストリビューションの対応方法

詳細は、各ディストリビューションの提供元にご確認ください

対処方法

各ディストリビューションの案内に従い、アップデートを行ってください。

[参考]

タイトルとURLをコピーしました