← 脆弱性の記事一覧へ

セキュリティノート

Linuxカーネル「Fragnesia」PHP2Shellと連鎖しroot奪取に悪用された

分類:攻撃手法権限昇格対象技術ネットワーク機器対象技術OS・カーネルインシデント種別悪用確認

要点

影響を受けるもの

  • IPsec ESP(esp4/esp6)のESP-in-TCP処理を含むLinuxカーネル。上流の修正版は 5.15.208、6.1.174、6.6.141、6.12.91、6.18.33、7.0.10(NVD)。
  • 一般のサーバーだけでなく、Linuxを土台にした機器(ファイアウォールなど)も対象になりうる。今回悪用されたのはファイアウォール製品だが、ベンダー名は公表されていない。

今すぐやること

  • ディストリビューションの修正済みカーネルに更新して再起動する。すぐ再起動できない場合は、IPsecを使っていなければ esp4/esp6 モジュールの読み込みを止める(Red Hatの回避策)。
  • PHP2Shellの修正をまだ当てていないWebサーバーは、外から侵入されたうえでrootまで取られる経路が実在すると考えて、PHPとカーネルの両方を更新する。

何が起きているか

事実(CISA、Dream、oss-security、Red Hat)

  • CISAは2026年10月28日、CVE-2026-46300をKEVに追加した。KEVの説明は「CVE-2026-109618とCVE-2026-109619と組み合わせて、PHPのWebシェルを設置しrootでコマンドを実行できる」としている。連邦機関の対応期限は10月31日で、KEVの「Forensic triage」(侵害の有無の調査を求める印)も付いている。
  • 脆弱性そのものは2026年5月13日に、V12のWilliam Bowling氏が「Fragnesia」として公表した(oss-securityへの投稿)。IPsecのESP-in-TCP処理の論理的な欠陥で、読み取り専用ファイルのページキャッシュに任意のバイトを書き込める。競合状態を必要とせず、公表時の実証コードは /usr/bin/su のページキャッシュを書き換えてrootのシェルを得る。ディスク上のファイルは書き換わらない。
  • 原因は、ソケットバッファ(skb)を結合する skb_try_coalesce() が「共有フラグメント」の印を引き継がないこと。印が消えると、ESPの受信処理が共有されたページ(ファイルのページキャッシュ)を自分のものとみなし、その上で復号を行ってしまう(NVD、修正コミット)。
  • Red Hatは、同じ系統の「Dirty Frag」(CVE-2026-43284、CVE-2026-43500)とまとめてセキュリティ速報RHSB-2026-003を出している。深刻度は「Important」で、理由は「ローカルからのアクセスが必要」なため。CVSS 3.1は7.8(AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)。

悪用の内容(Dreamの10月26日の報告)

  • イスラエルのセキュリティ企業Dreamは、攻撃者の作業環境から回収した資料をもとに、PHP2ShellとFragnesiaを連鎖させた攻撃を報告した。
    • 標的は「大手ベンダーのファイアウォール」の管理画面(appweb上のPHP)。Dreamはベンダー名と影響する版を伏せ、ベンダーに通知したとしている。この機器のOSはPHP 8.0.30を使っていた。
    • PHP2Shellの非公開の実装で、認証なしに nobody 権限でコマンドを実行する。SELinuxがWebサーバーのプロセスにシステムファイルの書き換えを許さないため、続けてFragnesiaで /etc/pam.d/su のページキャッシュを「誰でも通す」設定(pam_permit.so)に書き換え、パスワードなしで su root を通した。2つの攻撃は1つのHTTPリクエストの中で動き、全体は15分以内に終わる。
    • 攻撃者は中国の資産検索サービスFOFAで約1万9000台を見つけ、版を調べて約5000台から米国・日本・台湾・韓国の240台に絞り、自動で攻撃した。24台にrootのWebシェルを置き、さらに1台(後述の管理サーバー)を加えて計25台を侵害した。
    • うち米政府系とみられる組織の2台では、2026年10月24日(UTC)に逆方向のSSHトンネルを張り、内部のファイアウォール管理サーバーにも同じ連鎖で侵入した。そこからLDAPのサービスアカウントのパスワードを復号し、Active Directoryの利用者とグループを列挙し、パスワードスプレーやバックドア用アカウントの作成を試みた。これらが成功したかは、回収した資料からは分からないとしている。
    • Dreamは特定の攻撃グループと結びつけていないが、標的の国、FOFAや中国製のトンネルツールの使用、UTC+8の時刻などから中国系の活動とみている。

影響を受ける製品・バージョン

  • Linuxカーネル(NVDの記載):3.9以降が対象。系列ごとの修正前の版は 5.11〜5.15.207、5.16〜6.1.173、6.2〜6.6.140、6.7〜6.12.90、6.13〜6.18.32、6.19〜7.0.9、7.1-rc1〜rc4。
  • Red Hat Enterprise Linux 8/9/10、およびそのカーネルを使う製品(RHEL CoreOS、OpenShift、OpenStackなど)。修正は提供済み(RHSB-2026-003)。
  • Debian:bullseye(5.10系)は DLA-4606-1 の 5.10.257-1、bookworm は DSA-6306-1 の 6.1.174-1、trixie は DSA-6295-1 の 6.12.90-1 で修正(Debianセキュリティトラッカー)。
  • Linuxを内蔵したアプライアンス製品は、ベンダーの情報を確認する必要がある。Siemensも影響を受ける製品の勧告(SSA-019113、SSA-082556)を出している。
  • 単独ではローカルからの攻撃が前提で、外から直接は狙えない。今回はPHP2Shellがその「足場」になった。

修正版・回避策

  • 修正:上流の安定版(5.15.208、6.1.174、6.6.141、6.12.91、6.18.33、7.0.10)と、各ディストリビューションの更新カーネル。
  • Red Hatの示す回避策(RHSB-2026-003):
    • IPsecを使っていない場合:esp4/esp6 モジュールを読み込めないようにする。lsmod | grep -E 'esp4|esp6' で使用中か確認できる。IPsecは使えなくなる。
    • IPsecを使う場合:user.max_user_namespaces=0 で特権のないユーザー名前空間を無効にする。rootlessコンテナやサンドボックス化されたブラウザ、Flatpakに影響が出ることがある。
  • PHP2Shellの修正(PHP側)は10月22日の記事を参照。

今すぐやること

  1. uname -r とディストリビューションの勧告で、カーネルが修正済みかを確かめる。5月以降カーネルを更新していても、再起動していなければ古いカーネルのまま動いている。
  2. 修正済みカーネルへの更新と再起動ができない機器は、上の回避策のどちらかを当てる。
  3. ファイアウォールやVPNなど、Linux+PHPの管理画面を持つ機器を使っている場合は、管理画面がインターネットに出ていないかを確認し、ベンダーにPHP2ShellとFragnesiaへの対応状況を問い合わせる。
  4. 侵害の確認:Dreamの報告にもとづけば、大きなマルチパートのPOSTが続いた記録、公開ディレクトリに置かれた小さなPHPファイル、外向きのSSHトンネルや見覚えのないsystemdサービス・rc.local の追記が手がかりになる。ページキャッシュの書き換えはディスクに残らないため、再起動すると /etc/pam.d/su などの書き換えの跡は消える点に注意する。
  5. 機器の設定に保存されているLDAPなどのサービスアカウントのパスワードは、侵害が疑われる時点で変更する。

考察

  • 「ローカル」の脆弱性は、Webの脆弱性と組み合わさると外から使われる: Fragnesia単独のCVSSは7.8で、Red Hatも「ローカルが必要」としてCriticalにしていない。しかし今回の攻撃では、認証なしで動くPHP2Shellが「ローカルの一般ユーザー」の立場を与え、1回のリクエストでrootまで届いた。権限昇格の脆弱性は、外から入られる脆弱性の修正が遅れている機器ほど危険になる。
  • SELinuxは最後の砦にならなかった: Webサーバーのプロセスは書き換えを禁じられていたが、カーネルの欠陥でページキャッシュを直接書き換えられると、その制限は関係なくなる。アクセス制御の仕組みはカーネルが正しく動くことを前提にしている。
  • 5月に修正済みでも、機器の中には残る: 上流の修正から5か月たって悪用が確認された。標的の機器はサポートの終わったPHP 8.0.30を使っており、カーネルやライブラリの更新が製品の更新に追いついていないとみられる。アプライアンスは利用者が中身を直接更新できないため、ベンダーの対応状況を確認するしかない。
  • 攻撃の準備は機種と版ごとに行われていた: Dreamの報告では、攻撃者は試した11の版ごとにメモリ配置などの情報(プロファイル)を用意しており、そのうち完全に調整済みだったのは1つだった。今回対象外だった版も、準備が進めば狙われる可能性がある。管理画面をインターネットに出さないことが、版を問わず効く対策になる。

出典

原文をGitHubで読む ↗

あわせて読む

Oracle PeopleSoft ― 悪用中のRCEは3つの脆弱性の連鎖と判明