CVE-2024-36401 (CVSS 9.8): Urgent Patch Needed for GeoServer RCE Vulnerability
2024/07/02 SecurityOnline — 地理空間データを管理/共有するための、OSS プラットフォームとして広く利用されているGeoServer に、深刻な脆弱性 CVE-2024-36401 (CVSS:9.8) が発見された。この脆弱性の悪用に成功した攻撃者は、影響を受けるサーバ上で任意のコード実行が可能となり、機密性の高い地図や位置情報が危険にさらされる。

この脆弱性は、GeoTools ライブラリ API 内のプロパティ名表現の、安全ではない評価に起因する。具体的に言うと、複数の OGC リクエスト パラメータが処理される際に、未認証のユーザーが特別に細工された入力を挿入できる場合に問題が発生する。これらの細工された入力は、フィーチャ・タイプのプロパティ/属性名を評価する XPath 式を悪用し、任意のコードの実行につながる。
この脆弱性の根本的な原因は、GeoServer がプロパティ名を評価するために呼び出す、GeoTools ライブラリ API に存在する。これらのプロパティ名は、commons-jxpath ライブラリに渡され、XPath 式を評価する際に任意のコード実行が可能になる。この機能は (Application Schema データストアのような) 複雑なフィーチャ・タイプのために意図されたものであるが、単純なフィーチャ・タイプに誤って適用されると、すべての GeoServer インスタンスに脆弱性が拡大する。
GeoServer ユーザーには、この脆弱性によるリスクを軽減するために、早急な対処が求められる。影響を受けるシステムの安全性を確保するために、以下の手順を取ることが可能である:
回避策
GeoServer のインストールから、gt-complex-x.y.jar ファイルを削除することで、脆弱性を一時的に緩和できる。それにより、脆弱なコードは除去されるが、gt-complex モジュールに依存する特定の機能が使用できなくなる可能性がある。回避策は以下の通りである:
GeoServer .war をデプロイする場合:
- アプリケーション・サーバーを停止する。
- なんらかのディレクトリ内で geoserver.war を解凍する。
- “WEB-INF/lib/gt-complex-x.y.jar” を探して削除する。
- ディレクトリを新しい “geoserver.war” に再圧縮する。
- アプリケーションサーバーを再起動する。
GeoServer バイナリの場合:
- Jetty を停止する。
- “webapps/geoserver/WEB-INF/lib/gt-complex-x.y.jar” を見つけて削除する。
- Jetty を再起動する。
修正方法
すでに GeoServer は、バージョン 2.24.4/2.25.2/2.23.6 で、この脆弱性を修正している。システムを保護するため、ユーザには早急なアップデートが強く推奨される。直ちにアップデートが不可能な場合には、以前のリリースでパッチが適用された jar (gt-app-schema/gt-complex/gt-xsd-core) が利用可能であり、回避策と同様の手順で適用できる。
GeoServer に関しては、2023/06/12 にも「GeoServer の深刻な脆弱性 CVE-2023-35042 が FIX:RCE 攻撃が観測されている」という記事をポストしています。この OSS プロジェクトですが、位置情報を利用する各種のサービスで、利用されていると推測できます。ご利用のチームは、ご注意ください。Wikipedia には、「GeoServer は Java で書かれたオープンソースのサーバであり、それを利用するユーザーは、地理空間データを共有/処理/編集を可能にする。相互運用性を考慮して設計されており、オープン スタンダードを使用して、あらゆる空間データ・ソースからデータを公開する。Google Earth/NASA World Wind などの仮想地球儀や、OpenLayers/Leaflet/Google Maps/Bing Maps などの Web ベースのマップに対して、既存の情報を簡単に接続できる手段へと、GeoServer は進化した」と、解説されています。
You must be logged in to post a comment.