PostgreSQL の脆弱性 CVE-2026-6471 “PostGREShell” が FIX:コード実行とアカウント乗っ取りの恐れ

12-Year-Old PostgreSQL Flaw Lets Attackers Execute Code and Take Over Database Servers

2026/09/05 gbhackers — Cyera Research が公表したのは、PostgreSQL に存在する深刻な脆弱性 CVE-2026-6471PostGREShell” に関する情報である。この脆弱性を悪用する低権限のレプリケーション権限を持つ攻撃者は、悪意のあるコードの実行/データベース・スーパーユーザーへの権限昇格/影響を受けるサーバ上への永続的なバックドアの展開を行う可能性がある。

この脆弱性 CVE-2026-6471 は、PostgreSQL 9.4 以降のリリースに影響すると報告されており、危険なプラグイン読み込み経路が約 12 年間にわたって存在していたことが明らかになった。また、この問題を 9月1日に公表した Cyera Research は、バックアップ/ストリーミング・レプリケーション/変更データ取得/フェイルオーバー/データベース監視に使用される中核コンポーネントが影響を受けると警告している。

PostgreSQL は企業インフラ/クラウド・プラットフォームで広く利用されているため、漏洩したレプリケーション・クレデンシャルは、攻撃者にとって価値の高い標的になる可能性がある。

約 12 年間にわたって存在していた PostgreSQL の脆弱性

PostGREShell は、PostgreSQL の論理レプリケーションの仕組みに存在する脆弱性であり、この機能を使用する組織は、Write-Ahead Log の変更を、スタンバイ・インスタンス/分析プラットフォーム/移行ツール/Debezium などの変更データ取得サービスへストリーミングしている。

これらの変更を受信するクライアントは、論理レプリケーション・スロットを作成して出力プラグインの名前を指定する。このプラグインは、レプリケーション・データを整形するために PostgreSQL がサーバー・プロセスへ読み込む、.so/.dll/.dylib といったライブラリ形式のコンパイル済みネイティブ・コードである。

通常の PostgreSQL では、スーパーユーザーではないユーザーによる SQL の [LOAD] コマンドを介した任意の外部ライブラリのロードを制限しており、check_restricted_library_name() と呼ばれるセキュリティ検証によって、ライブラリのロード先は承認された管理用ディレクトリに制限され、危険なパスはブロックされる。しかし Cyera によると、論理レプリケーションの経路では、この検証が適用されていないため、REPLICATION ロールを持つユーザーは、絶対パス/パス・トラバーサル文字列/Windows の UNC パスを含むプラグイン名を指定できる。

Initiate streaming replication (Source: cyera)
Initiate streaming replication (Source: cyera)

PostgreSQL により指定された値は、Linux/macOS の dlopen() や Windows の LoadLibrary() といった OS ライブラリ・ロード関数に渡されるため、悪意のライブラリがロードされると、その初期化コードが PostgreSQL のサーバー・プロセス内で実行される。

その影響は、オペレーティング・システム/環境に応じて異なる。Windows では、攻撃者が悪意のある DLL を SMB 共有上へ配置し、データベース・サーバーに UNC パスを指定する可能性がある。外向き SMB 接続が有効な場合には、標的システムへ事前にファイルを書き込まなくても、PostgreSQL がリモートから DLL を取得/ロードする可能性がある。

Linux/macOS では、攻撃者が制御するライブラリが事前にローカルへ保存されていることが条件となる場合がある。その一方で、NFS 自動マウントを使用するシステムでは、ネットワーク・マウントされたパスを介して、リモートからライブラリが配信される可能性がある。

コード実行に成功した攻撃者は、PostgreSQL のサービス・アカウントに付与されたオペレーティング・システム権限でコードを実行できる。さらに、PostgreSQL の内部メモリ/カタログ構造を操作して通常の SQL 権限チェックを回避し、データベース・スーパーユーザー・レベルのアクセス権を取得する可能性がある。

PostgreSQL account with the REPLICATION  (Source: cyera)
PostgreSQL account with the REPLICATION  (Source: cyera)

PostgreSQL のスーパーユーザーは、機密性の高いアプリケーション・データの読み取り/データベースに保存された認証情報へのアクセス/ファイルの書き込みおよび、構成によってはデータベース機能を介した OS コマンド実行も可能である。さらに Cyera は、悪意のあるプラグインにより、pg_hba.conf の変更/shared_preload_libraries への自身の登録/管理者による修復後の未認可の権限の再取得などが行われる可能性があると警告している。

Cyera の Vladimir によると、VirusTotal を使用した調査では、暗号資産マイナー/トロイの木馬/リバース・シェルなどを含む 114 個の疑わしい PostgreSQL プラグインが特定された。こうしたサンプルの存在だけでは、脆弱性 CVE-2026-6471 の悪用を確認する証拠にはならないが、信頼できないデータベース拡張機能がもたらす、より広範なリスクが示されている。

緩和策

管理者は、CVE-2026-6471 に対応する PostgreSQL のセキュリティ・アップデートを即時適用する必要がある。それに加えて、REPLICATION 属性が割り当てられた全アカウントを確認し、制限の厳しい pg_hba.conf ルールを使用してレプリケーションへのアクセスを信頼できるホストだけに制限する必要がある。

また、データベース・サーバーから外部への不要な SMB 通信 (ポート 445)/NFS 通信 (ポート 2049) をブロックし、使用していない自動マウント・サービスを無効化するとともに、予期しない CREATE_REPLICATION_SLOT の実行を監視する必要がある。さらに、スラッシュ/バックスラッシュ/パス・トラバーサル文字列を含むプラグイン名を、悪用の可能性を示す優先度の高い兆候として扱う必要がある。