PostgreSQLの論理デコーディングの脆弱性CVE-2026-6471
PostgreSQLの論理デコーディングに、REPLICATION権限を持つ非スーパーユーザーがサーバーを実行するOSアカウントとして任意のコードを実行できる脆弱性CVE-2026-6471があった[1]。PostgreSQL Global Development Groupは2026年8月13日に14〜18系で修正した[1]。報告したCyeraは9月1日に「PostGREShell」と名付けた解説を出した[15]。
脆弱性の内容
| 項目 | 値 | 資料 |
|---|---|---|
| CVSS | 7.2(AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H。CVE記録の深刻度はHIGH) | [1、12] |
| CWE | CWE-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年 | PostgreSQL Global Development Group | WALのデータの論理デコーディングに対応したPostgreSQL 9.4を公開した | [18] |
| 2026年 | Cyera | 根本原因の分析、影響を受ける版、悪用の詳細、WindowsのPoC、修正案を添えてPostgreSQL Security Teamに報告した | [15] |
| 2026年 | PostgreSQL | 報告を受領し、脆弱性を確認した | [15] |
| 2026年 | PostgreSQL | 修正を定例のマイナーリリースで出すと確認した | [15] |
| 2026年 | - | CVE-2026-6471が予約された | [12] |
| 2026年 | PostgreSQL Global Development Group | 全サポート版の更新とアドバイザリを公開し〔注1〕、CNAとしてCVE記録を公開した | [1、2、12] |
| 2026年 | Debian | postgresql-17のセキュリティ更新を出した | [4] |
| 2026年 | JPCERT/CC | Weekly ReportでPostgreSQLの複数の脆弱性を取り上げた | [14] |
| 2026年 | Canonical | Ubuntuの修正の告知を出した | [7] |
| 2026年 | SUSE | 最初の修正の告知を出した | [9] |
| 2026年 | Amazon Web Services | Amazon Linux 2023とAmazon Linux 2のパッケージを修正した | [10] |
| 2026年 | Cyera | PostGREShellの解説を公開した | [15] |
| 2026年 | Amazon Web Services | 修正を取り込んだAurora PostgreSQLの最初の版を出した | [11] |
| 2026年 | Red Hat | RHSAを出した | [8] |
対象の製品と版
| 製品 | 影響を受ける版 | 修正版 | 資料 |
|---|---|---|---|
| PostgreSQL 18 | 18.6より前 | 18.6〔注2〕 | [1] |
| PostgreSQL 17 | 17.11より前 | 17.11 | [1] |
| PostgreSQL 16 | 16.15より前 | 16.15 | [1] |
| PostgreSQL 15 | 15.19より前 | 15.19 | [1] |
| PostgreSQL 14 | 14.24より前 | 14.24 | [1] |
PostgreSQL Global Development Groupの8月13日の告知では、PostgreSQL 14は11月12日に修正の提供を終える[2]。The Hacker Newsは、PostgreSQLのアドバイザリがサポート中の14〜18系を対象にし、それより前の系統に触れていないと報じた[17]。
| 配布元 | 状態 | 修正版・アドバイザリ | 資料 |
|---|---|---|---|
| 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・7 | Not affected | - | [8] |
| SUSE | 修正版あり | SUSE-SU-2026:3793-1ほか | [9] |
| Amazon Linux 2023(postgresql15〜18)・Amazon Linux 2(Postgresql14 Extra) | Fixed | ALAS2023-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]。
未公表の事項
- 13以前の系統についてのPostgreSQL Global Development Groupの扱い
- AzureとGoogle Cloudのマネージドサービスでの修正の状況
- 9月4日より後のpg_createsubscriberの不整合の修正の状況
- Cyeraが見つけた114件のプラグインとCVE-2026-6471の悪用との関係
注
出典
当事者
- [1]PostgreSQL Global Development Group『CVE-2026-6471: PostgreSQL logical decoding can dlopen arbitrary file』(2026年8月13日公開)
- [2]PostgreSQL Global Development Group『PostgreSQL 18.6, 17.11, 16.15, 15.19, 14.24 and 19 Beta 3 Released!』(2026年8月13日公開)
- [3]PostgreSQL Global Development Group『PostgreSQL 18.6 release notes』(2026年8月13日公開)
関係組織
- [4]Debian Project『[SECURITY] [DSA 6438-1] postgresql-17 security update』(2026年8月13日公開)
- [5]Debian Project『CVE-2026-6471』(公開日不明、2026年11月4日閲覧)
- [6]Canonical Ltd.『CVE-2026-6471』(2026年8月13日公開、2026年9月2日更新)
- [7]Canonical Ltd.『USN-8653-1: PostgreSQL vulnerabilities』(2026年8月20日公開)
- [8]Red Hat, Inc.『CVE-2026-6471』(2026年8月13日公開)
- [9]SUSE LLC『CVE-2026-6471』(2026年8月14日公開、2026年11月4日更新)
- [10]Amazon Web Services, Inc.『CVE-2026-6471』(2026年8月13日公開、2026年9月10日更新)
- [11]Amazon Web Services, Inc.『Amazon Aurora PostgreSQL updates』(2026年9月14日公開、2026年11月4日更新)
公的機関
- [12]CVE Program『CVE-2026-6471 PostgreSQL logical decoding can dlopen arbitrary file』(2026年8月13日公開、2026年8月29日更新)
- [13]National Institute of Standards and Technology『CVE-2026-6471』(2026年8月13日公開、2026年8月29日更新)
- [14]一般社団法人JPCERTコーディネーションセンター『Weekly Report 2026-08-19号』(2026年8月19日公開)
調査・観測
- [15]Cyera『PostGREShell: The database powering much of the internet had an open door for 12 years』(2026年9月1日公開)
報道機関
- [16]Wired Business Media『12-Year-Old PostgreSQL Vulnerability Enables Database, Server Takeover』(2026年9月4日公開)
- [17]The Hacker News『PostgreSQL Fixes 12-Year-Old Logical Decoding Flaw Enabling Replication-Role Code Execution』(2026年9月4日公開)
背景資料
- [18]PostgreSQL Global Development Group『PostgreSQL 9.4.0 release notes』(2014年12月18日公開)
- [19]PostgreSQL Global Development Group『PostgreSQL 18 Documentation: 19.6. Replication』(公開日不明、2026年11月4日閲覧)
更新記録
- 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)を「対象の製品と版」に加えた。
