Splunk Enterpriseに、CVSSスコア9.8というほぼ満点に近い深刻度を持つ、認証不要のリモートコード実行(RCE)脆弱性が開示されました。
CVE-2026-20253として追跡されるこの脆弱性は、2026年6月10日にSplunkが公表したもので、Splunkバージョン10から導入されたPostgreSQL Sidecar Serviceに影響します。
CVE-2026-20253の根本原因は、PostgreSQL Sidecar ServiceのHTTP APIエンドポイント、具体的には/v1/postgres/recovery/backupと/v1/postgres/recovery/restoreに認証制御が一切存在しない点にあります。
Splunk Enterprise 認証不要のRCE
これらの内部エンドポイントはプロキシ機構を経由してSplunkのメインWebアプリケーションからアクセス可能であり、ネットワークに到達できる攻撃者であれば、有効な認証情報なしにエンドポイントを呼び出すことができます。
この問題が最も深刻なのは、AWSでホストされているSplunk Enterpriseです。この環境ではPostgreSQL Sidecar Serviceがデフォルトでインストール・有効化されているため、導入直後から脆弱な状態になっています。
オンプレミスのWindowsデプロイメントは、サービスがデフォルトでインストールまたは有効化されていないため、影響は比較的限定的です。
WatchTowrの調査によると、/backupエンドポイントは攻撃者が制御するパラメータ(backupFileパスやdatabase名など)をpg_dumpに直接渡します。backupFileパラメータにおけるパストラバーサルにより、ファイルシステム上の任意の場所へのファイル作成や切り捨てが即座に可能となります。
さらに重大な発見は、PostgreSQL自体の設計に起因するものでした。databaseパラメータはlibpqの完全な接続文字列を受け付け、その中で定義されたパラメータはハードコードされたコマンドライン引数を上書きします。
これにより、研究者たちはhostaddrを挿入し、pg_dumpのlocalhost接続を攻撃者が制御するPostgreSQLサーバーへとリダイレクトすることに成功しました。pg_dumpを外部ホストへ誘導できるようになった研究者たちは、次に/restoreエンドポイントに着目しました。このエンドポイントは入力をpg_restoreに渡します。
/opt/splunk/var/packages/data/postgres/.pgpassで発見された平文の.pgpassファイルには、ローカルのpostgres_admin認証情報が含まれていました。
このファイルを指すpassfile接続文字列パラメータを挿入することで、攻撃者はSplunkのローカルPostgreSQLインスタンスへの完全な認証を取得し、攻撃者が制御するデータベースダンプをリストアして任意のSQLを実行することができます。
悪意あるダンプはPostgreSQLのlo_export関数を利用し、攻撃者が制御するコンテンツをファイルシステム上の任意のパスに書き込みます。これにより、splunkユーザーとして完全に制御された任意ファイル書き込みが実現します。
任意ファイル書き込みが可能になった段階で、RCEの達成に必要なステップはあと一つでした。研究者たちは、SplunkがPythonスクリプト/opt/splunk/etc/apps/splunk_secure_gateway/bin/ssg_enable_modular_input.pyを定期的に実行することを確認しました。
このファイルをlo_exportベースの書き込みプリミティブを通じて悪意あるペイロードで上書きすると、次にSplunkがそのスクリプトを呼び出した際にsplunkユーザーとしてコードが実行され、認証不要のRCEチェーンが完成します。
影響を受けるバージョンと緩和策
CVE-2026-20253はSplunk Enterpriseバージョン10.x以降に影響します。PostgreSQL Sidecarコンポーネントはバージョン10から導入されたためです。
Splunk Enterpriseを運用している組織、特にAWSでホストしているデプロイメントは、Splunkのパッチを直ちに適用し、PostgreSQL Sidecarサービスディレクトリへのファイルシステムアクセスを監査する必要があります。
セキュリティチームは.pgpassファイルの露出状況も確認し、Splunkの内部サービスポートが外部インターフェースから適切に分離されていることを確認してください。
watchTowr LabsはGitHub上にDetection Artifact Generator(DAG)をリリースしました。このツールは/v1/postgres/recovery/backupエンドポイントが有効な認証情報なしに応答するかどうかを確認するもので、ステータスコード400は脆弱であることを示し、401はパッチ適用済みまたは保護済みであることを示します。
今回の脆弱性は、セキュリティ監視プラットフォームが攻撃者にとって高価値なターゲットであることを改めて浮き彫りにするものです。内部サービスAPIにおける認証の抜け穴は、企業全体のセキュリティ体制を静かに蝕みかねません。
翻訳元: https://gbhackers.com/critical-splunk-enterprise-pre-auth/