Tesuji手筋
投稿
記事を投稿ノードを投稿

LOG 2026.10.29 · CONSTELLATION · 3 STARS

5月に直っていた穴が、10月に「悪用中」になった理由 ― Linuxカーネル「Fragnesia」とWebの穴の連鎖から考える

Webの穴と「ローカル限定」のカーネルの穴が連鎖する仕組みと、修正版が出てから実際に適用されるまでの“すき間”を理解し、動いているカーネルの確認・再起動計画・KEVの確認といった基本の対応を整理できる。

5月に直っていた穴が、なぜ10月に「悪用中」になるのか。

私たちは、その答えを「穴は1つずつ攻められるわけではない」という点にあると考えています。外から入れるWebの穴と、「ローカルからしか使えない」とされるカーネルの穴。それぞれ単体で見れば、後者はつい後回しにしたくなります。でも2つがつながると、インターネット越しにサーバーのroot(最上位の管理者権限)まで届いてしまいます。

そして、その連鎖が実際に起きる場所は、「上流(開発元)では修正済み」と「実際にサーバーで動いているカーネル」とのあいだにある“すき間”です。今回のLinuxカーネルの脆弱性「Fragnesia」は、その典型例でした。

何が起きたのか

Fragnesia(CVE-2026-46300)は、Linuxカーネルのネットワーク処理(IPsecのESP関連)にある不具合です。権限の低いローカルユーザーが、読み取り専用のはずのファイルの内容(メモリ上のキャッシュ)を書き換えられてしまい、結果としてroot権限を取れる「ローカル権限昇格」の脆弱性です。

  • NVDでのCVSS 3.1スコアは 7.8(High)。攻撃元区分は「ローカル(AV:L)」です。NVD
  • 公開は 2026年5月13日。同日にCVE番号が割り当てられ、修正パッチも提案されました。oss-security
  • 修正を含む安定版カーネル(7.0.10、6.12.91、6.6.141など)は 5月23日 にリリースされています。Linux 7.0.10 ChangeLog Ubuntu、Red Hatなど主要ディストリビューションも修正版カーネルを出しています。Ubuntu
  • Red Hatは深刻度を「Critical」ではなく「Important」としていて、その理由を「悪用にローカルアクセスが必要なため」と説明しています。Red Hat

つまり、修正自体は5か月前に出ていたわけです。

ところが10月28日(米国時間)、米CISA(サイバーセキュリティ・インフラストラクチャセキュリティ庁)は、この脆弱性を「既知の悪用された脆弱性(KEV)」カタログに追加しました。米連邦機関向けの対応期限は 10月31日、追加からわずか3日後です。KEVの説明には、PHPの脆弱性CVE-2026-109618・CVE-2026-109619と連鎖させることで、PHPのWebシェル(外から操作できる裏口)を仕込み、root権限でコマンドを実行できる、と書かれています。CISA KEV

「つなげる」と何が起きるのか

連鎖相手のPHPの脆弱性2件は「PHP2Shell」と呼ばれ、10月21日(UTC)に修正版のPHP(8.5.12、8.4.27、8.3.36、8.2.35)が公表されたばかりのものです。こちらは認証なしでリモートからコードを実行されうる脆弱性で、NVDに登録されたPHP側のCVSS 4.0スコアはどちらも9.2(Critical)です。CISAも10月26日にKEVへ追加しました。NVD CVE-2026-109618、NVD CVE-2026-109619

セキュリティ企業Dreamの報告によれば、攻撃者は10月23〜24日、特定ベンダーのファイアウォール製品を狙い、PHP2ShellとFragnesiaをつなげた攻撃を自動化して24台のrootを奪い、root権限のWebシェルを設置しました。さらに、そのうち1つの組織では内部の管理サーバーにも同じ連鎖を使い、侵害されたサーバーは計25台になったとされています。Dream Research、SecurityWeekの報道 流れを概念的にまとめると、こうなります。

  1. Webの穴(PHP2Shell)で、Webサーバーの低い権限としてコードを実行する
  2. その「中にいる」状態から、ローカル限定のカーネルの穴(Fragnesia)を使ってrootになる
  3. 裏口(Webシェル)を残し、さらに内部のシステムへ広げていく

ここで大事なのは2の部分です。「ローカルからしか悪用できない」という条件は、Webの穴が1つでもあれば満たせてしまいます。攻撃者から見れば、Webサーバーのプロセスはもう「ローカルユーザー」なのです。

スコアは「1つの穴」しか見ていない

CVSSのようなスコアは、あくまで「その穴単体」の評価です。リモートの穴は高く、ローカルの穴は低めに出ます。それ自体は正しいのですが、運用の優先順位をスコアだけで決めると、「7.8でローカル限定なら、次の定期メンテでいいか」という判断になりがちです。

そして、カーネルの修正には特有の遅れがあります。

  • 上流で直っても、各ディストリビューションが自分のカーネルに取り込む(バックポートする)までに時間がかかる
  • パッケージを更新しても、再起動するまで古いカーネルが動き続ける
  • 「止められないサーバーだから再起動は年末に」と先送りされる

今回の被害機器の事情までは報告から分かりませんが、一般に、5月の修正と10月の悪用のあいだにはこうした“すき間”が生まれやすいと私たちは考えています。

小さな会社・個人開発者ができること

大きなセキュリティチームがなくても、次のことはすぐ始められます。

1. 「入っているカーネル」ではなく「動いているカーネル」を確認する 更新済みのパッケージがインストールされていても、再起動していなければ古いカーネルのままです。uname -r などで実際に動いているバージョンを確認し、ディストリビューションの修正版と照らし合わせましょう。

2. 再起動を「予定」に入れておく カーネル更新は再起動してはじめて効きます。月1回など、再起動できる時間帯をあらかじめ決めておくと、先送りが減ります。

3. Webに公開しているサーバーでは「ローカル」を「リモート」と読み替える PHPなどで動くWebアプリを外に公開しているなら、ローカル権限昇格の穴は「Webの穴とセットで使われる前提」で扱うことをおすすめします。PHP本体のバージョンも合わせて確認しましょう。

4. CISAのKEVカタログをときどき見る KEVは「実際に悪用が確認された」脆弱性の一覧です。スコアの高さではなく「いま使われているか」で優先順位をつける手がかりになります。

5. 古い対策を外すときは、修正版の適用を確認してから 公開直後に案内された回避策を入れている場合、Ubuntuは修正版カーネルを適用すれば不要になると説明しています。逆に言えば、修正版が動いていることを確認する前に外さないことが大切です。

ここに書いたのは一般的な考え方で、すべての環境での安全を保証するものではありません。実際の対応は、お使いのディストリビューションやベンダーの最新の案内を確認したうえで判断してください。

おわりに

「1つだけ見ると後回しにできそうな穴も、つなげると致命的になる」。これは脆弱性に限らず、システム全体を見るときにも当てはまる話だと思います。

あわせて読みたい、Tesujiのセキュリティ記事:

参考情報

確認日:2026年10月29日。修正版カーネルのバージョンや回避策の要否は、お使いのディストリビューション・ベンダーの公式情報で確認してください。

自分のブックマーク

読み込み中…

NEXT MOVE — 次の一手

同じ星が登場する星座