PostgreSQLの論理デコーディングの脆弱性CVE-2026-6471

カテゴリ
脆弱性の公表
タグ
国外
目次
  1. 脆弱性の内容
    1. 報告者が示した攻撃の手順
    2. 必要な権限の評価
  2. 時系列
  3. 対象の製品と版
  4. 悪用の状況
  5. 修正と回避策
    1. 出力プラグインの許可の一覧
    2. 拡張と移行への影響
    3. 報告者と配布元の緩和策
  6. 未公表の事項
  7. 注
  8. 出典
  9. 更新記録

PostgreSQLの論理デコーディングに、REPLICATION権限を持つ非スーパーユーザーがサーバーを実行するOSアカウントとして任意のコードを実行できる脆弱性CVE-2026-6471があった⁠[1]。PostgreSQL Global Development Groupは2026年8月13日に14〜18系で修正した⁠[1]。報告したCyeraは9月1日に「PostGREShell」と名付けた解説を出した⁠[15]。

脆弱性の内容

表1:CVE-2026-6471の評価
項目値資料
CVSS7.2(AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H。CVE記録の深刻度はHIGH)⁠[1、12]
CWECWE-862(Missing Authorization)⁠[12]
配布元の深刻度の区分Important(Red Hat)、important(SUSE)、Medium(Ubuntu)⁠[6、8、9]

PostgreSQLのアドバイザリでは、原因は論理デコーディングの認可の欠如で、OSアカウントから見える任意のファイルをプラグインの選択を通じてdlopenさせられる⁠[1]。18.6のリリースノートは、これまでレプリケーションのユーザーが読み込み可能な任意のライブラリを論理デコーディングに選べ、さまざまな種類の悪用を許していたと説明した⁠[3]。

Cyeraは、2014年以降のPostgreSQLにこの脆弱性があったと報告した⁠[15、16]。Cyeraの解説では、9.4から18までのすべての版が影響を受ける⁠[15]。確かめた版は18.2だった⁠[15]。

報告者が示した攻撃の手順

Cyeraは解説で、レプリケーションのプロトコルを使うにはREPLICATION属性を持つアカウントが要ると説明した⁠[15]。バックアップのツール、スタンバイサーバー、CDCのパイプライン、監視の仕組みがこのアカウントを使う⁠[15]。論理レプリケーションのスロットは出力プラグイン(pgoutputやwal2json)を名指しし、PostgreSQLはそれを読み込んで変更の流れを整形する⁠[15]。

Cyeraによると、非スーパーユーザーには管理者の管理する1つのディレクトリからしかプラグインを読み込ませない仕組みとして、check_restricted_library_name()がある⁠[15]。この関数はレプリケーションの経路では呼ばれない⁠[15]。CREATE_REPLICATION_SLOTで渡したプラグインの名前は検証されずにローダーへ渡り、パーサーは二重引用符の中のスラッシュ、バックスラッシュ、「../」、WindowsのUNCパスを受け付ける⁠[15]。

Cyeraの解説では、Windowsではネットワークに届くだけで足り、SMB(445番ポート)のUNCパスで攻撃者のサーバーからDLLを取得させるので、標的には何も置かない⁠[15]。LinuxとmacOSでは、/netの自動マウント(NFS、2049番ポート)が有効なときに成立する⁠[15]。それ以外の環境では、攻撃者が既にディスクにファイルを書けることが条件になる⁠[15]。

Cyeraは、読み込ませたプラグインがpg_authidに直接書き込み、権限の旗をすべて真にしてスーパーユーザーになると説明した⁠[15]。この変更は再起動後も残り、カタログ上は通常のALTER ROLEと見分けがつかない⁠[15]。プラグインは続けて、pg_hba.confの書き換え、shared_preload_librariesへの登録、スーパーユーザー化の再適用という3つの永続化の仕組みを設ける⁠[15]。

必要な権限の評価

Cyeraは、権限の低い「backup」アカウントがデータベースサーバー上で任意のコードを読み込んで実行でき、Windows・Linux・macOSでリモートコード実行に至ると説明した⁠[15]。The Hacker Newsは、CyeraがREPLICATION属性を権限の低いバックアップの資格情報と表現したと報じた⁠[17]。同じ記事によると、PostgreSQLはPrivileges RequiredをHighとして評価し、SUSEの評価も同じだった⁠[17]。

Red Hatの評価では、悪用には攻撃者が既にデータベースへの相当のアクセスを持つ必要がある⁠[8]。特に要るREPLICATIONロールは通常の利用者に既定で付与されず、Red Hatはこれが全体のリスクを下げるとした⁠[8]。

目次へ

時系列

時系列
日付主体内容資料
2014年12月18日PostgreSQL Global Development GroupWALのデータの論理デコーディングに対応したPostgreSQL 9.4を公開した⁠[18]
2026年2月21日Cyera根本原因の分析、影響を受ける版、悪用の詳細、WindowsのPoC、修正案を添えてPostgreSQL Security Teamに報告した⁠[15]
2026年2月27日PostgreSQL報告を受領し、脆弱性を確認した⁠[15]
2026年3月16日PostgreSQL修正を定例のマイナーリリースで出すと確認した⁠[15]
2026年4月17日-CVE-2026-6471が予約された⁠[12]
2026年8月13日PostgreSQL Global Development Group全サポート版の更新とアドバイザリを公開し〔注1〕、CNAとしてCVE記録を公開した⁠[1、2、12]
2026年8月13日Debianpostgresql-17のセキュリティ更新を出した⁠[4]
2026年8月19日JPCERT/CCWeekly ReportでPostgreSQLの複数の脆弱性を取り上げた⁠[14]
2026年8月20日CanonicalUbuntuの修正の告知を出した⁠[7]
2026年8月25日SUSE最初の修正の告知を出した⁠[9]
2026年8月31日Amazon Web ServicesAmazon Linux 2023とAmazon Linux 2のパッケージを修正した⁠[10]
2026年9月1日CyeraPostGREShellの解説を公開した⁠[15]
2026年9月14日Amazon Web Services修正を取り込んだAurora PostgreSQLの最初の版を出した⁠[11]
2026年9月14日〜9月30日Red HatRHSAを出した⁠[8]

目次へ

対象の製品と版

表2:PostgreSQLの影響を受ける版と修正版
製品影響を受ける版修正版資料
PostgreSQL 1818.6より前18.6〔注2〕⁠[1]
PostgreSQL 1717.11より前17.11⁠[1]
PostgreSQL 1616.15より前16.15⁠[1]
PostgreSQL 1515.19より前15.19⁠[1]
PostgreSQL 1414.24より前14.24⁠[1]

PostgreSQL Global Development Groupの8月13日の告知では、PostgreSQL 14は11月12日に修正の提供を終える⁠[2]。The Hacker Newsは、PostgreSQLのアドバイザリがサポート中の14〜18系を対象にし、それより前の系統に触れていないと報じた⁠[17]。

表3:配布元の対応状況
配布元状態修正版・アドバイザリ資料
Debian trixie(postgresql-17)修正版あり17.11-0+deb13u1(DSA-6438-1)⁠[4]
Debian bookworm(postgresql-15)修正版あり15.18-0+deb12u1はvulnerable、15.19-0+deb12u1(DLA-4740-1)でfixed⁠[5]
Debian forky・sid(postgresql-18)修正版あり18.6-3⁠[5]
Debian unstable(postgresql-13)未修正unfixed⁠[5]
Ubuntu 26.04 LTS・24.04 LTS・22.04 LTS修正版あり18.6-0ubuntu0.26.04.1、16.15-0ubuntu0.24.04.1、14.24-0ubuntu0.22.04.1(USN-8653-1)⁠[6、7]
Ubuntu 14.04 LTS(postgresql-9.3)Vulnerable, fix deferred上流のサポート終了のため更新なし⁠[6]
Ubuntu 20.04 LTS・18.04 LTS・16.04 LTS(postgresql-12・10・9.5)Needs evaluation-⁠[6]
Red Hat Enterprise Linux修正版あり修正の記録28件(RHSA 24件)⁠[8]
Red Hat Enterprise Linux 6・7Not affected-⁠[8]
SUSE修正版ありSUSE-SU-2026:3793-1ほか⁠[9]
Amazon Linux 2023(postgresql15〜18)・Amazon Linux 2(Postgresql14 Extra)FixedALAS2023-2026-2077ほか、ALAS2POSTGRESQL14-2026-025⁠[10]
Amazon Linux 2(Postgresql9.6・10・11・12・13 Extra)No Fix Planned-⁠[10]
Aurora PostgreSQL修正版あり18.4.2・17.10.2・16.14.2・15.18.2・14.23.2から、11月4日の17.5.7・16.9.7・15.13.7・14.18.7まで⁠[11]

The Hacker Newsの記事によると、Amazon RDSでは5系統すべてに修正済みのパッケージがある⁠[17]。

目次へ

悪用の状況

CISAはCVE記録のADP(Vulnrichment)で、8月13日付のSSVCを悪用(Exploitation)none、自動化の可否(Automatable)no、技術的な影響(Technical Impact)totalとした⁠[12]。NVDの記録(8月29日更新)では、KEVへの追加日の項目(cisaExploitAdd)が空である⁠[13]。

The Hacker Newsは、9月4日にはCVE-2026-6471がCISAのKnown Exploited Vulnerabilities(KEV)カタログに無かったと報じた⁠[17]。同じ日に公開のリポジトリを調べ、PoCを見つけられなかった⁠[17]。

Cyeraは、VirusTotalで悪意あるPostgreSQLのプラグインを探し、既に出回っている114件を見つけたと報告した⁠[15]。トロイの木馬、暗号資産の採掘、リバースシェルが含まれていた⁠[15]。

目次へ

修正と回避策

PostgreSQL Global Development Groupの8月13日のリリースは、過去数か月に報告された28件のセキュリティ脆弱性を直した⁠[2]。同じリリースで直した不具合は110件を超える⁠[2]。

PostgreSQLは18.6のリリースノートで、論理デコーディングの出力プラグインを新しいサーバーパラメータoutput_plugin_librariesで指定した集合に限ったと説明した⁠[3]。以前に動いていた構成を壊さずに締め付けられるよう、許可する出力プラグインの一覧を設けた⁠[3]。

出力プラグインの許可の一覧

18.6のリリースノートでは、既定でoutput_plugin_librariesに入るのは同梱の出力プラグイン(pgoutputとtest_decoding)だけである⁠[3]。他の出力プラグインに頼る環境は、サーバーの更新後にそれらを加えなければならない⁠[3]。17以降の版からpg_upgradeで移行するときは、旧クラスタの論理レプリケーションスロットのプラグインを新しいクラスタの設定が許可していないと、pg_upgrade --checkが失敗する⁠[3]。

PostgreSQL 18の文書では、output_plugin_librariesに、dynamic_library_pathにあるライブラリのうち論理出力プラグインとして信頼するものを並べる⁠[19]。すべての利用者がこの制限を受け、他のライブラリへの要求は拒否される⁠[19]。一覧に加えたライブラリが非スーパーユーザーに意図しない権限を与えないよう確かめるのは、サーバーの管理者の責任である⁠[19]。拒まれた要求は「ERROR: library "..." may not be used as an output plugin」に似た形でログに出る⁠[19]。

The Hacker Newsは、修正を書いたJacob Champion氏のコミットメッセージを引いた⁠[17]。標準のLOADの制限をいま加えれば、サードパーティの出力プラグインをすべて$libdir/pluginsの下に置き直させることになると、Champion氏は書いていた⁠[17]。

拡張と移行への影響

Debianは、上流の修正が一部の拡張を使うときに設定の追加の変更を要し、Debianに含まれるpostgresql-17-wal2json、postgresql-17-squeeze、postgresql-17-pg-rewrite、postgresql-17-decoderbufsが影響を受けるとした⁠[4]。

The Hacker Newsは、wal2jsonやdecoderbufsなど他の出力プラグインを使う環境では、管理者がライブラリを一覧に足して設定を再読み込みするまで論理デコーディングが拒まれると報じた⁠[17]。更新の前にSELECT DISTINCT plugin FROM pg_replication_slots WHERE plugin IS NOT NULL;で使っている出力プラグインを確かめるよう記事は書いた⁠[17]。追加の後はpg_ctl reloadかSELECT pg_reload_conf()で設定を読み直せば足り、再起動は要らない⁠[17]。

同じ記事によると、9月4日にはwal2jsonのプロジェクトが文書を改め、CVEを挙げてプラグインをoutput_plugin_librariesに足すよう案内していた⁠[17]。UbuntuのUSN-8653-1はこのパラメータに触れず、更新後にPostgreSQLを再起動するよう伝えるだけだった⁠[17]。

pg_createsubscriberは新しいパラメータを確かめずにpgoutputでスロットを作るため、--dry-runは通っても変換が失敗するとThe Hacker Newsは報じた⁠[17]。これを直すパッチは、9月4日にはレビュー中でコミットされていなかった⁠[17]。

報告者と配布元の緩和策

Red Hatは緩和策として、REPLICATION権限を高く信頼したデータベースのスーパーユーザーにだけ与えるよう示した⁠[8]。論理デコーディングを使っていなければ無効にすることを検討するよう、Red Hatは併せて示した⁠[8]。Cyeraは、まずセキュリティ更新を当てるよう推奨し、続けてREPLICATIONアカウントの監査などの対策を並べた⁠[15]。

  • REPLICATIONアカウントを監査し、厳密に必要としないアカウントからREPLICATION属性を外す⁠[15]
  • 残したアカウントは、pg_hba.confで既知の信頼できるIPアドレスからだけ接続させる⁠[15]
  • データベースサーバーからの外向きのSMB(445)とNFS(2049)をファイアウォールで遮断し、不要なautofsを無効にする⁠[15]
  • 想定外のIPアドレスからのCREATE_REPLICATION_SLOTや、「/」「\」「..」を含むプラグイン名を監視する⁠[15]

目次へ

未公表の事項

  • 13以前の系統についてのPostgreSQL Global Development Groupの扱い
  • AzureとGoogle Cloudのマネージドサービスでの修正の状況
  • 9月4日より後のpg_createsubscriberの不整合の修正の状況
  • Cyeraが見つけた114件のプラグインとCVE-2026-6471の悪用との関係

注

  • 〔注1〕Cyeraの解説の時系列は、リリースとCVE-2026-6471の公開の日を8月22日と書いている⁠[15]。
  • 〔注2〕Red HatとAmazon Linuxの説明文は、18系の境を18.5と書いている⁠[8、10]。18.5は出荷準備の後に見つかった不具合のため公開されなかった⁠[3]。

出典

当事者

関係組織

公的機関

調査・観測

報道機関

背景資料

更新記録

  • 2026年9月8日:公開した。
  • 2026年9月10日:Amazon Linux Security Centerの9月10日の更新(出典10)を「対象の製品と版」と「時系列」に加えた。
  • 2026年9月14日:Aurora PostgreSQLのリリースノートの9月14日の項(出典11)と、9月14日から出たRed HatのRHSA(出典8)を「対象の製品と版」と「時系列」に加えた。
  • 2026年11月4日:SUSEの11月4日の更新(出典9)とAurora PostgreSQLのリリースノートの11月4日の項(出典11)を「対象の製品と版」に加えた。

目次へ