12年前から潜んだPostGREShell、複製権限がサーバー奪取口に

PostgreSQLの複製用アカウントをOSコード実行へ転用できるCVE-2026-6471について、攻撃経路と永続化手法を掘り下げた報道が2026年9月4日に公開された。SecurityWeekの報道 は、研究者が「PostGREShell」と名付けた欠陥が2014年のPostgreSQL 9.4以降に存在し、REPLICATION属性からコード実行、恒久的なスーパーユーザー化、バックドア設置へ進み得ると伝えている。
サポート中の系列では、PostgreSQL 18.6、17.11、16.15、15.19、14.24より前が影響を受け、修正版は2026年8月13日に公開済みだ。悪用にはREPLICATION属性を持つ有効なアカウント、論理デコードが使える構成、PostgreSQLの実行アカウントから悪意ある共有ライブラリへ到達できる経路が必要であり、認証なしで直ちに侵入できる欠陥ではない。
修正版は18.6、17.11、16.15、15.19、14.24
PostgreSQL公式のCVE告知 によると、影響を受けるのは18.6、17.11、16.15、15.19、14.24より前の各版で、修正日は2026年8月13日。対象はコアサーバーで、CVSS 3.0の評価は7.2、攻撃条件のPrivileges RequiredはHighとされている。
- PostgreSQL 18:18.6より前が影響対象
- PostgreSQL 17:17.11より前が影響対象
- PostgreSQL 16:16.15より前が影響対象
- PostgreSQL 15:15.19より前が影響対象
- PostgreSQL 14:14.24より前が影響対象
公式一覧は、告知時点でサポートされている14〜18系列を対象にしている。一方、研究では論理デコードが導入された9.4以降の経路が問題とされているため、保守終了版が一覧にないことは安全を意味しない。旧系列を残す環境では、修正を含むサポート中の系列への移行が必要になる。
論理デコードのプラグイン名がローダーへ届く

欠陥の中心は、論理レプリケーションスロットの作成時に指定される出力プラグイン名の認可不足だ。論理デコードはWALに記録された変更を外部ツールが扱える形式へ変換し、その処理を担う共有ライブラリをPostgreSQLのバックエンドプロセスへ読み込む。
通常のSQL経由のライブラリ読み込みには、非スーパーユーザーが管理者の管理外にあるファイルを選べないよう制限がある。しかし脆弱な複製経路では同じ検査が働かず、絶対パスやパストラバーサルを含むプラグイン名が動的ローダーまで届き得た。読み込まれたコードはSQLロールの権限ではなく、PostgreSQLサーバーを動かすOSアカウントの権限で実行される。
ただし、攻撃者は共有ライブラリをサーバープロセスから参照できる場所へ用意しなければならない。Windowsでは到達可能なUNCパス経由のSMB、NFS自動マウントが有効なLinuxやmacOSではネットワーク上のファイルが経路になり得る。それ以外の一般的なLinux、コンテナ、Kubernetes環境では、サーバーのローカル領域へファイルを書き込む別の手段が必要になる。
OSコード実行が恒久的な管理権限へつながる
共有ライブラリがPostgreSQLのプロセス内に入ると、コードは通常のSQL権限チェックより内側で動作する。研究用プラグインは内部機能を呼び出し、ロール情報を保持するシステムカタログを直接変更することで、複製ロールをPostgreSQLのスーパーユーザーへ昇格させた。
この変更は単一セッションだけの一時的な昇格ではなく、カタログに保存されるため再起動後も残り得る。スーパーユーザーになれば、全データベースのテーブルや保存済み資格情報にアクセスでき、PostgreSQLのOSプロセスが許可された範囲でコマンド実行、ファイルの読み書きも可能になる。
研究ではさらに、接続認証設定の書き換え、悪意あるライブラリの起動時読み込み、取り消された管理権限の再付与という永続化手法が示された。このため、更新前に不審な複製操作があった環境では、パッケージを更新しただけで侵害の痕跡まで消えたとは判断できない。
複製資格情報は外部ツールまで追跡する

調査範囲はデータベース内部のロール一覧だけでは足りない。REPLICATION資格情報は、バックアップ製品、待機サーバー、CDCパイプライン、移行ツール、WALを読む監視システムなど、PostgreSQLの外側にも保管されるためだ。
- インスタンスと版:自己管理環境、仮想マシン、コンテナ、マネージドサービスを列挙し、実際に稼働するマイナー版を確認する。
- 論理デコード:wal_levelがlogicalか、どの論理レプリケーションスロットと出力プラグインが存在するかを対応付ける。
- REPLICATIONロール:属性を持つロール、許可された接続元、現在も複製権限を必要とする処理を整理する。
- 外部の保管先:バックアップ、待機系、CDC、監視、シークレット管理基盤にある資格情報をロールへひも付ける。
- 到達経路と痕跡:サーバーからSMBやNFSへ接続できるかを調べ、想定外のスロット作成、異常なプラグイン名、認証設定や起動時ライブラリの変更を確認する。
同じ複製アカウントを複数の製品で共有している場合、接続記録だけでは資格情報の利用元や流出元を特定しにくい。製品や処理ごとにロールとシークレットを分け、不要なREPLICATION属性を外すことで、攻撃可能な範囲と事後調査の曖昧さをともに抑えられる。
更新後は出力プラグインの許可設定も変わる
The Hacker Newsの技術解説 によると、修正では論理デコード用として読み込めるライブラリを列挙するoutput_plugin_librariesが導入され、既定値はpgoutputとtest_decodingになった。wal2jsonやdecoderbufsなど既定外の出力プラグインを使う環境では、更新後に必要なライブラリを設定へ追加して再読み込みしない限り、論理デコードが拒否される。
同記事が確認した2026年9月4日時点では、CVE-2026-6471はCISAのKnown Exploited Vulnerabilitiesカタログに掲載されておらず、公開リポジトリにも実証コードは見つかっていない。ただし、これは悪用がなかったことの証明ではなく、実被害の有無や規模も明らかになっていない。
確認されているのは、修正版がすでに提供され、REPLICATION資格情報からOSコード実行と永続化へ進む経路が公開されたことだ。更新時には版だけでなく出力プラグインの許可設定を確認し、更新前の期間については複製ロールを持つ外部システムまで調査対象に含める必要がある。
ニュースレターを購読
Web3、AI、暗号資産の最新ニュースを受信箱にお届けします。