GeoServer、認証不要のSQLインジェクション脆弱性を修正 GHSA-mqjf-5f49-2fjh、CVSS 9.8で悪用試行を観測

セキュリティニュース

投稿日時: 更新日時:

GeoServer、認証不要のSQLインジェクション脆弱性を修正 GHSA-mqjf-5f49-2fjh、CVSS 9.8で悪用試行を観測

GeoServerおよびGeoToolsの開発チームは2026年8月14日から15日にかけ、PostGISを利用する環境で認証なしにSQLインジェクションが可能となる脆弱性「GHSA-mqjf-5f49-2fjh」への修正を公開しました。GeoToolsの公式アドバイザリではCVSS v3.1の基本値を9.8(Critical)と評価しています。

この問題は、2023年に修正されたCVE-2023-25158の一部が再発した「回帰」と説明されていますが、今回の脆弱性そのものにCVE-2023-25158が割り当てられているわけではありません。2026年8月19日時点で、新たなCVE番号は確認できません。

公開後には攻撃者による悪用の試みが観測されています。Shadowserver FoundationはRondoDoxボットネットがこの脆弱性を狙う試行をセンサーで確認したと報告しています。一方、現時点で確認できる一次情報からは、攻撃が成功してGeoServer環境が侵害されたことまで確認されたとはいえません。

GHSA-mqjf-5f49-2fjhのサマリー

  • 確認済み:GeoToolsのPostGIS DataStore実装にあるjsonArrayContains関数で、外部入力が適切にエスケープされずSQLへ組み込まれる問題です。
  • 確認済み:PostGIS 12以降を利用し、対象レイヤーにStringまたはJSONフィールドがある構成が影響条件です。
  • 確認済み:認証なしで到達可能なOGCインターフェースからSQLインジェクションにつながることが研究者により確認されています。
  • 確認済み:GeoToolsの公式アドバイザリはCVSS v3.1 9.8(Critical)と評価しています。
  • 確認済み:GeoTools 35.1、34.5、33.6で修正されています。
  • 確認済み:GeoServer 3.0.1、2.28.5、2.27.6が修正版として公開されています。
  • 確認済み:GeoServer 2.27系はすでにEOLであり、2.27.6は緊急対応用のリリースです。開発チームは安定版またはメンテナンス版への移行を求めています。
  • 確認済み:CVE-2023-25158向けに案内されていたpreparedStatementsの有効化やencode functionsの無効化は、今回の脆弱性の緩和策として有効ではありません。
  • 確認済み:ShadowserverはRondoDoxボットネットによる悪用の試みを観測しています。また、世界で1,500台超のGeoServer露出環境を確認していますが、この数字は脆弱性が存在する台数ではなく、GeoServerの公開台数です。
  • 確認済み:第三者がGitHub上でPoCコードを公開していることを確認しました。本稿では悪用可能なコードや具体的な利用方法は掲載しません。
  • 未確認:悪用試行によって実際に侵害された組織や、情報窃取・マルウェア感染などの被害が発生したことは、確認した一次情報では明らかになっていません。
  • 未確認:2026年8月19日時点で今回の脆弱性に固有のCVE番号は確認できません。
項目 内容
公表日 2026年8月12日に研究者が公開、GeoServer修正版は8月14日、GeoTools公式アドバイザリは8月15日
識別子 GHSA-mqjf-5f49-2fjh
CVE 2026年8月19日時点で未採番
CVSS 9.8(Critical、CVSS v3.1)
脆弱性 認証不要のSQLインジェクション
影響コンポーネント GeoTools org.geotools:gt-jdbc-postgis
影響条件 PostGIS 12以降、StringまたはJSONフィールドを利用する対象レイヤー
GeoTools修正版 35.1、34.5、33.6
GeoServer修正版 3.0.1、2.28.5、2.27.6
悪用確認 悪用の試みを観測。侵害成功までは一次情報で確認できず
PoC 公開を確認
CISA KEV 本稿確認時点で今回のGHSA/新規CVEとしての掲載は確認できず
暫定回避策 GeoTools公式は有効な緩和策なしと説明。修正版への更新が必要

GeoToolsのjsonArrayContainsでSQLインジェクション

脆弱性はGeoServerが利用するGeoToolsのPostGIS向けJDBC実装に存在します。GeoToolsの公式アドバイザリによると、PostGIS 12以降でjsonArrayContains関数を処理する際、外部から与えられた値が適切にエスケープされないまま生成SQLに書き込まれます。

影響を受けるには、PostGIS 12以降を使用し、対象となるレイヤーにStringまたはJSONフィールドが存在する必要があります。

脆弱性の分類はCWE-89(SQLインジェクション)で、GeoToolsは攻撃が成功した場合、データベース上で任意のSQL式を実行される可能性があると説明しています。

GeoToolsのGitHub Security AdvisoryではCVSS v3.1の基本値を9.8とし、攻撃経路はネットワーク、攻撃の複雑さは低、必要権限なし、ユーザー操作なしと評価しています。

なお、GeoServerのリリース告知では脆弱性名の後ろに「High」と記載されていますが、リンク先となるGeoToolsのGitHub Security Advisoryでは「Critical」、CVSS 9.8と評価されています。本稿では脆弱性の公式アドバイザリ側の評価を採用します。

CVE-2023-25158そのものではなく「回帰」

今回の脆弱性について、GeoToolsはCVE-2023-25158のjsonArrayContains関数に関する回帰だと説明しています。

この点は、提示された二次記事の記述を読む際に注意が必要です。CVE-2023-25158は2023年に公開された別の脆弱性の識別番号であり、今回新たに発見された問題へそのまま割り当てられているわけではありません。

GeoServer Project Steering Committeeも8月15日の告知で、今回の脆弱性について「公式CVE番号が利用可能になれば更新する」としています。2026年8月19日時点で、GeoToolsのGitHub Security Advisoryにも「No known CVE」と表示されています。

そのため、現段階で今回の問題を「CVE-2023-25158が再び悪用されている」と表現するのは正確ではありません。「CVE-2023-25158の修正に関連する回帰として発生した、新たなSQLインジェクション脆弱性」と整理するのが適切です。

GeoServer 3.0.1、2.28.5、2.27.6で修正

GeoServerプロジェクトは2026年8月14日、GeoServer 3.0.1、2.28.5、2.27.6を公開しました。いずれのリリースでも、GHSA-mqjf-5f49-2fjhへの対応を「production systems向けのurgent update」と位置付けています。

対応するGeoToolsは次の通りです。

GeoServer 組み込まれるGeoTools 対応状況
GeoServer 3.0.1 GeoTools 35.1 修正済み
GeoServer 2.28.5 GeoTools 34.5 修正済み
GeoServer 2.27.6 GeoTools 33.6 修正済み

GeoServer 2.27系については、プロジェクトがすでにEOLに達していると明記しています。2.27.6は緊急のセキュリティ対応として提供されたもので、適用後も安定版またはメンテナンス版への移行計画を立てる必要があります。

前報では修正パッチが未提供の段階でしたが、現在は公式修正版が公開されています。

関連記事:
GeoServerの未パッチゼロデイ脆弱性、公開から数時間でサイバー攻撃への悪用開始

旧CVE向けの設定変更では防げない

GeoToolsの公式アドバイザリは、今回の問題に有効な緩和策はないと説明しています。

特に重要なのが、CVE-2023-25158への対策として案内されていたpreparedStatementsの有効化とencode functionsの無効化が、今回の脆弱性には有効ではない点です。

過去のGeoServer脆弱性対応で設定変更を実施済みの環境でも、今回の問題に対する防御策になっていると判断してはいけません。GeoTools/GeoServerの修正版へ更新する必要があります。

条件次第ではデータベースホスト上のコード実行につながる可能性

Hadrianの研究者は、このSQLインジェクションを独自に解析し、公開OGCインターフェースから認証なしで到達できることを確認しています。

同社の検証では、GeoServerがPostgreSQLへ接続するデータベースロールに過剰な権限が付与されている場合、SQLインジェクションからデータベースホスト上のOSコマンド実行へ影響が拡大する可能性が示されています。

一方、これはすべてのGeoServer環境で直ちにRCEが成立するという意味ではありません。RCEにはPostgreSQL側の権限など追加条件が必要です。権限が限定されている場合でも、データベースユーザーがアクセス可能なデータに対する不正なSQL操作につながる可能性があります。

本稿では攻撃手順、ペイロード、再現コードは記載しません。

RondoDoxによる悪用試行をShadowserverが観測

Shadowserver Foundationは、RondoDoxボットネットが今回のGeoServer脆弱性を悪用しようとする通信をセンサーで観測したと報告しています。

同組織はあわせて、世界で1,500台を超えるGeoServerインスタンスがインターネットから露出しているとしています。ただしShadowserver自身が、この数字は脆弱性のチェック結果ではなく「exposed population」、つまり外部公開されているGeoServerの台数だと明記しています。

したがって「1,500台以上が脆弱」「1,500台以上が侵害された」と解釈することはできません。

また、Hadrianも8月12日の公開から数時間以内に悪用の試みが始まったと報告しています。現時点ではスキャンや脆弱性確認を目的とする通信と、実際の侵害成功を区別する必要があります。

確認できた一次情報では、特定組織への侵入成功、情報窃取、マルウェア設置などの具体的な被害事例までは示されていません。このため本稿では「実際の攻撃で侵害された」とは断定せず、「悪用の試みが観測されている」と表現します。

PoCは公開済み、攻撃への転用リスクが上昇

第三者が2026年8月13日にGitHub Gist上で、今回のSQLインジェクションを検証するPoCコードを公開していることを確認しました。

また、Hadrianも独自の検証でSQLインジェクションから条件付きRCEまでのチェーンを再現したと報告しています。

PoCの存在は、脆弱性の再現や防御検証に役立つ一方、攻撃者が脆弱性を調査するコストを下げる要因にもなります。すでにShadowserverが悪用試行を観測していることから、インターネットにGeoServerを公開している組織は、修正の優先度を高く設定すべき状況です。

悪用可能なコードや具体的な攻撃方法につながる情報は本稿では掲載しません。

情報システム部門への示唆

まず、インターネットに公開されているGeoServerの有無を資産管理情報と外部公開資産の両面から確認してください。GIS基盤は業務部門や外部ベンダー主導で構築されることもあり、一般的なサーバー台帳から漏れているケースがあります。

GeoServer 3.0.0以前の3.0系、2.28.4以前の2.28系、2.27.5以前の2.27系を運用している場合は、それぞれ3.0.1、2.28.5、2.27.6以上への更新を優先してください。2.27系については修正適用だけでなく、サポート対象系列への移行も必要です。

PostGISを利用している環境では、PostgreSQLの接続ユーザーに不要な高権限が付与されていないかも確認してください。今回の脆弱性では、データベース権限が被害範囲を大きく左右します。GeoServer用アカウントを最小権限化し、OSコマンド実行につながるような不要な権限を付与しないことが重要です。

更新までの間は、GeoTools公式が有効なソフトウェア設定上の緩和策を示していないことを前提に、インターネットからの到達範囲を必要最小限に制限してください。公開が不要な管理・OGCエンドポイントは外部から直接到達できない構成にし、VPN、リバースプロキシ、アクセス制御など既存の境界対策を利用して露出を抑えることが考えられます。

あわせて、8月12日以降のWebアクセスログ、GeoServerログ、PostgreSQLログを確認し、jsonArrayContainsを含む不審なフィルター要求や、通常とは異なるSQLエラー、異常なデータベース操作がないか調査してください。ただし、文字列パターンだけで侵害の有無を断定せず、プロセス実行、ファイル生成、外部通信などサーバー側の挙動と組み合わせて判断する必要があります。

過去にはGeoServerのCVE-2024-36401が実際の攻撃で悪用されました。今回も公開後すでに悪用試行が観測され、PoCも公開されているため、「CVE番号がまだない」ことを理由に対応を保留すべきではありません。

関連記事:
GeoServerの脆弱性(CVE-2024-36401)を悪用したマルウェア攻撃

出典