注目★★★★★GitHub Advisory
GeoServer の FreeMarker テンプレート SSTI、認証管理者が任意コード実行可能
30秒で把握
- 1GeoServer FreeMarker テンプレートに SSTI 脆弱性、認証管理者がコマンド実行・任意ファイル操作可能
- 2WMS GetFeatureInfo/GetMap 出力が対象、メソッドチェーン経由で Execute クラスのブロック回避可
- 3バージョン 2.27.0 で新規プロパティ 3 種導入・管理者は設定見直しか即座にアップグレード推奨
要約
GeoServer に認証済み管理者が FreeMarker テンプレートをアップロードする際、サーバーサイドテンプレートインジェクション (SSTI) により OS コマンド実行と任意ファイル読み書きが可能な脆弱性が確認された。WMS GetFeatureInfo の HTML/JSON 出力と WMS GetMap の KML/GeoRSS 出力で悪用される。org.geoserver.template.TemplateUtils.getSafeConfiguration() が freemarker.template.utility.Execute クラスを制限しようとしていたが、特定のメソッドチェーンで回避可能だった。GeoServer 2.27.0 で GEOSERVER_FREEMARKER_BLOCK_LIST、GEOSERVER_FREEMARKER_ALLOW_LIST、GEOSERVER_FREEMARKER_API_EXPOSED の新規プロパティを導入し、テンプレート作成者がアクセス可能なオブジェクトとゲッターメソッドを制限する修正を適用した。
あなたへの影響
GeoServer の管理画面にアクセス可能な内部ユーザーが存在する場合、2.27.0 未満のバージョンではテンプレート機能経由での OS コマンド実行リスクがあるため。
推奨:運用チームは即座にバージョン確認と必要に応じてアップグレード、または上記プロパティの設定を検討すべき。