PostgreSQLの脆弱性 CVE-2026-6471「PostGREShell」、REPLICATION権限から任意コード実行 12年前から存在した脆弱性を修正

セキュリティニュース

投稿日時: 更新日時:

PostgreSQLの脆弱性 CVE-2026-6471「PostGREShell」、REPLICATION権限から任意コード実行 12年前から存在した脆弱性を修正

PostgreSQL Global Development Groupは2026年8月13日、論理デコーディング機能の認可不備により、REPLICATION権限を持つ非スーパーユーザーがPostgreSQLサーバー上で任意コードを実行できる脆弱性「CVE-2026-6471」を修正しました。

脆弱性を発見したCyera Researchは「PostGREShell」と呼称し、PostgreSQL 9.4で論理デコーディングが導入された2014年から約12年間存在していたと説明しています。

PostgreSQL公式のCVSS v3.1スコアは7.2(High)です。攻撃にはPostgreSQLのREPLICATION権限が必要で、認証不要でインターネット上のPostgreSQLへ直接侵入できる脆弱性ではありません。一方、条件を満たした攻撃者は、データベースサーバーを実行するOSアカウントの権限で任意コードを実行できます。

Cyeraはさらに、コード実行後にPostgreSQLのスーパーユーザー権限を取得し、永続的なバックドアを設置できることを検証したとしています。

CVE-2026-6471「PostGREShell」のサマリー

  • 【確認済み】CVE-2026-6471はPostgreSQLの論理デコーディングにおける認可不備です。
  • 【確認済み】PostgreSQL公式のCVSS v3.1スコアは7.2(High)です。
  • 【確認済み】CWEはCWE-862「Missing Authorization」です。
  • 【確認済み】攻撃にはREPLICATION権限を持つPostgreSQLアカウントが必要です。
  • 【確認済み】条件を満たす非スーパーユーザーが、PostgreSQLサーバーのOSアカウント権限で任意コードを実行できる可能性があります。
  • 【研究者確認】Cyeraは、PostgreSQL 9.4が公開された2014年から脆弱性が存在していたとしています。
  • 【研究者確認】Cyeraは、任意コード実行後にPostgreSQLスーパーユーザー権限の取得と永続化が可能であることを検証したとしています。
  • 【確認済み】PostgreSQLのサポート対象バージョン14~18に対する修正版は18.6、17.11、16.15、15.19、14.24です。
  • 【確認済み】修正版は2026年8月13日に公開されました。
  • 【確認済み】修正後は新しい設定「output_plugin_libraries」により、論理デコーディングで利用できる出力プラグインが制限されます。
  • 【注意】サードパーティ製の論理デコーディングプラグインを利用している環境では、アップデート後に設定確認が必要です。
  • 【確認できず】実際の攻撃でCVE-2026-6471が悪用された事実は確認されていません。
  • 【確認済み】9月6日時点でCISA Known Exploited Vulnerabilities(KEV)Catalogへの掲載は確認できません。
  • 【確認済み】9月5日以降、公開リポジトリ上にCVE-2026-6471の再現・PoCをうたうコードが少なくとも1件公開されています。
  • 【注意】CyeraがVirusTotalで確認した114件の悪性PostgreSQLプラグインは、本脆弱性の実悪用を示す証拠ではありません。
項目 内容
CVE CVE-2026-6471
通称 PostGREShell(Cyeraによる呼称)
公開日 2026年8月13日
影響製品 PostgreSQL core server
脆弱性 論理デコーディングにおける認可不備
CWE CWE-862 Missing Authorization
CVSS v3.1 7.2(High)
攻撃元 ネットワーク
必要権限 REPLICATION権限
ユーザー操作 不要
影響 PostgreSQL実行OSアカウント権限での任意コード実行
研究者が確認した追加影響 PostgreSQLスーパーユーザー化、永続化
修正版 18.6、17.11、16.15、15.19、14.24
実悪用 確認できませんでした
公開PoC 9月6日時点で公開リポジトリを確認
CISA KEV 9月6日時点で未掲載
発見者 Vladimir Tokarev氏、Yu Kunpeng氏
報告先 PostgreSQL Security Team

REPLICATION権限を持つ非スーパーユーザーから任意コード実行

CVE-2026-6471は、PostgreSQLの論理デコーディング機能が出力プラグインを読み込む際の認可処理に問題がある脆弱性です。

PostgreSQL公式アドバイザリによると、

REPLICATION権限を持つ非スーパーユーザーが、論理デコーディングで利用するプラグインを選択する際、PostgreSQLサーバーを動かしているOSアカウントから見える任意のファイルを読み込ませることが可能でした。

その結果、PostgreSQLを実行しているOSアカウントの権限で任意コードが実行される可能性があります。

ただし、攻撃条件は重要です。

CVSSベクトルは「AV/AC/PR/UI/S/C/I/A」で、PostgreSQL公式はPrivileges Requiredを「High」と評価しています。攻撃者は事前にREPLICATION権限を取得している必要があり、未認証の外部攻撃者がそのまま任意コードを実行できる脆弱性ではありません。

SecurityWeekは「low-level replication access」と表現していますが、PostgreSQL公式のCVSS上では高い権限を必要とする脆弱性として評価されています。

PostgreSQL 18.6、17.11、16.15、15.19、14.24で修正

PostgreSQL Global Development Groupは8月13日、サポート中の全メジャーバージョンに対して修正版を公開しました。

修正版は以下です。

系列 修正版
PostgreSQL 18 18.6
PostgreSQL 17 17.11
PostgreSQL 16 16.15
PostgreSQL 15 15.19
PostgreSQL 14 14.24

同日のセキュリティアップデートでは、CVE-2026-6471を含む28件のセキュリティ脆弱性と110件を超える不具合が修正されています。

なおPostgreSQL 14は2026年11月12日にサポート終了予定です。14系を利用している組織は、14.24への更新だけでなく、より新しいメジャーバージョンへの移行計画も必要です。

Cyeraは「PostGREShell」と命名、2014年から存在と分析

脆弱性を発見したCyera ResearchはCVE-2026-6471を「PostGREShell」と命名しました。

Cyeraによると、問題となる論理デコーディングのプラグイン読み込み経路はPostgreSQL 9.4で導入され、2014年から脆弱な状態が続いていたとしています。

PostgreSQL公式アドバイザリが現在のサポート対象として列挙しているのはPostgreSQL 14~18です。一方、Cyeraは研究結果としてPostgreSQL 9.4以降にも同じ脆弱な設計が存在していたと説明しています。

そのため「12年間存在した」という表現はPostgreSQL公式アドバイザリの影響バージョン表ではなく、発見者Cyeraによるコード履歴・検証結果に基づくものです。

古いPostgreSQLはすでにサポート終了しているため、14より前のバージョンを現在も運用している場合は、今回の修正だけでなくサポート対象バージョンへの移行そのものを検討する必要があります。

データベース権限だけでなくサーバー側コード実行へ

通常、REPLICATION権限はレプリケーションやバックアップ、Change Data Captureなどの用途で付与されます。

この権限はPostgreSQLのスーパーユーザーそのものではありません。

しかしCVE-2026-6471では、論理デコーディングの出力プラグインを読み込む仕組みを通じて、データベース内部の権限境界を越え、PostgreSQLプロセスを実行するOSアカウントの権限でコードを実行できる点が問題になります。

Cyeraは研究環境で、そこからPostgreSQLのスーパーユーザー権限を取得し、データベース内に永続的なアクセス手段を残せることも検証したとしています。

ただし、PostgreSQL公式アドバイザリが確認している直接的な影響は「PostgreSQLサーバーを動かすOSアカウントとしての任意コード実行」です。スーパーユーザー化や永続化の具体的な手法はCyeraの研究結果として区別して扱う必要があります。

セキュリティ対策Labでは、実際の悪用につながる具体的なコード、共有ライブラリの作成方法、脆弱性を成立させる操作手順は掲載しません。

修正後は「output_plugin_libraries」で許可プラグインを制限

CVE-2026-6471の修正では、新しいサーバーパラメータ「output_plugin_libraries」が追加されました。

論理デコーディングで利用できる出力プラグインを許可リスト形式で制限し、REPLICATION権限を持つユーザーが任意のロード可能なライブラリを指定できないようにします。

デフォルトでは、PostgreSQLに付属する「pgoutput」と「test_decoding」が許可対象です。

ここはアップデート時の注意点です。

wal2jsonなどサードパーティ製の論理デコーディング用プラグインを利用している場合、アップデート後に必要なプラグインを明示的に許可する設定が必要になる場合があります。

PostgreSQL 17.11の公式リリースノートも、従来利用していたサードパーティプラグインがある場合は、新しい設定へ追加するよう案内しています。

そのため、本番環境では「パッケージを更新して終わり」ではなく、論理レプリケーションやCDC基盤が正常に動作するかまで確認する必要があります。

Cyeraの開示は2月、修正は8月13日

Cyeraによると、同社は2026年2月21日にPostgreSQL Security Teamへ脆弱性を報告しました。

2月27日にPostgreSQL側が脆弱性として認識し、3月には修正を予定していることを伝えたとしています。

CVE-2026-6471は8月13日にPostgreSQL公式のセキュリティ情報として公開され、同日に修正版が提供されました。

なお、Cyeraの9月1日付研究記事に掲載されたDisclosure timelineには「August 22, 2026: Release published」と記載されていますが、PostgreSQL公式アドバイザリ、リリースノート、CVEレコードはいずれも修正公開日を8月13日としています。

本記事ではベンダー一次情報を優先し、公開日は8月13日としています。

悪性PostgreSQLプラグイン114件を確認、ただし実悪用の証拠ではない

CyeraはVirusTotalを調査し、トロイの木馬、暗号資産マイナー、リバースシェルなどを含む114件の悪性PostgreSQLプラグインを確認したとしています。

この数字は注意して扱う必要があります。

悪性PostgreSQLプラグインが存在することと、CVE-2026-6471を利用してそれらが実際のPostgreSQL環境へ読み込まれたことは別です。

Cyeraの調査は、脆弱性の悪用に転用可能な悪性ライブラリがすでに存在することを示す材料ですが、CVE-2026-6471の実悪用を確認したものではありません。

CISAのCVEレコードに付与されたSSVC情報でも、8月13日時点の「Exploitation」は「none」です。

9月6日時点で、CVE-2026-6471が実際の攻撃で悪用されたとの一次情報は確認できませんでした。

9月5日以降に公開PoCが出現、KEVは未掲載

公開直後の9月4日時点では、複数のセキュリティ媒体が公開PoCを確認できないとしていました。

しかし9月5日以降、公開リポジトリ上にCVE-2026-6471の再現やPoCをうたうコードが少なくとも1件公開されています。

したがって、9月6日時点で「PoC未公開」とするのは正確ではありません。

一方、公開PoCの存在と実際の攻撃での悪用は区別する必要があります。

CISA Known Exploited Vulnerabilities(KEV)Catalogへの掲載は9月6日時点で確認できず、実悪用を示す一次情報も確認できませんでした。

公開PoCによって再現のハードルが下がる可能性があるため、REPLICATION権限を持つアカウントが存在する環境では、実悪用確認を待たず修正版へ更新することが望まれます。

暫定対応はREPLICATION権限と接続元の見直し

修正版への更新が最優先です。

すぐに更新できない場合、CyeraはREPLICATION権限を持つアカウントを棚卸しし、不要なアカウントから権限を削除することを推奨しています。

また、レプリケーション接続を許可する接続元を必要なホストに限定し、データベースサーバーから不要な外部通信が行えないようネットワーク制御を確認することも挙げています。

重要なのは、REPLICATION権限を「バックアップ用途だから低リスク」とみなさないことです。

CVE-2026-6471では、その権限がサーバー側コード実行へつながる可能性があります。サービスアカウントやCDC用アカウントを含め、誰にREPLICATION属性が付与されているかを確認する必要があります。

情報システム・データベース管理者への示唆

PostgreSQLを利用する組織では、まず実行中のバージョンを確認し、18.6、17.11、16.15、15.19、14.24以降へ更新する必要があります。

特に確認したいのは、論理レプリケーション、Change Data Capture、データ移行、バックアップ、監視などの目的でREPLICATION権限を持つサービスアカウントです。

こうしたアカウントは通常のアプリケーション用DBユーザーとは分けて管理されるため、一般的な権限レビューから漏れる場合があります。

また、更新後には「output_plugin_libraries」の設定を確認し、必要な出力プラグインだけを許可してください。サードパーティ製プラグインを利用している場合は、アップデート後の動作確認も必要です。

データベースサーバーについては、外向き通信を必要最小限に制限することも重要です。DBサーバーから任意の外部ホストへ通信できる構成は、本脆弱性に限らず、侵害後の追加ペイロード取得や情報持ち出しのリスクを高めます。

CVE-2026-6471はCVSS 7.2で、認証不要のCritical脆弱性ではありません。しかし、REPLICATION権限を奪取された場合の技術的影響は大きく、CISAのSSVC情報でもTechnical Impactは「total」と評価されています。

CVSSの数字だけで優先度を下げず、自社環境でREPLICATION権限がどの程度利用されているかを基準に対応優先度を判断する必要があります。

出典