PostgreSQL潛藏12年高風險漏洞,恐導致任意程式碼執行
- 發布單位:TWCERT/CC
- 更新日期:2026-09-30
- 點閱次數:112

Cyera Research於2026年9月1日公開研究報告,揭露PostgreSQL邏輯解碼(Logical Decoding)功能存在一項漏洞,編號為CVE-2026-6471,CVSS分數為7.2,並命名為「PostGREShell」。具REPLICATION權限的非超級使用者(non-superuser)可利用此漏洞執行任意程式碼。PostgreSQL Global Development Group已於2026年8月13日釋出修補版本。截至2026年9月9日,公開資料未載明已有實際攻擊事件。
漏洞源自邏輯解碼外掛載入機制
邏輯解碼是PostgreSQL將預寫式日誌(Write-Ahead Log, WAL)中的資料變更轉換為外部系統可讀格式的機制,常用於資料複寫與變更資料擷取。PostgreSQL 自 2014 年發布的 9.4 版本起正式支援此功能,意味該漏洞在被發現前可能已存在12年。
此漏洞源於PostgreSQL邏輯解碼功能缺乏適當的授權檢查。已取得 REPLICATION權限的攻擊者,可透過指定邏輯解碼輸出外掛,利用該漏洞載入任意共享程式庫,進而取得 PostgreSQL服務所使用的作業系統帳號權限執行任意程式碼。
根據Cyera Research的研究報告,在Windows環境中,若PostgreSQL伺服器可對外連線至伺服器訊息區塊(Server Message Block, SMB)服務,攻擊者即可誘使系統從遠端網路路徑載入DLL。而在啟用NFS自動掛載的Linux或macOS環境,也能以類似方式載入遠端程式庫;至於一般Linux、Docker或Kubernetes環境,則須先具備將檔案寫入主機其他路徑的權限。惡意程式成功執行後,將取得與PostgreSQL程序相同的作業系統權限。這代表一旦REPLICATION帳號遭竊,其影響將從資料複寫權限,進一步擴大至資料庫主機層級。
官方已限制可載入的輸出外掛
PostgreSQL官方公告指出,現行受支援且受此漏洞影響的版本為14至18,應分別更新至14.24、15.19、16.15、17.11或18.6;Cyera Research補充表示,該問題最早可追溯至9.4版本,使用已停止支援(EOL)舊版本的單位應儘速升級。PostgreSQL於本次修補版本中新增output_plugin_libraries參數以限制可載入的輸出外掛(預設只允許pgoutput與test_decoding)。若使用wal2json等第三方外掛,管理者須手動納入允許清單方可正常運作。此外,Ubuntu亦於2026年8月20日發布USN-8653-1安全更新,提供相應的系統修補。
TWCERT/CC 建議企業與組織採取以下防護措施:
1. 立即更新 PostgreSQL 版本:盤點所有PostgreSQL資料庫主機,確認版本是否低於18.6、17.11、16.15、15.19或14.24;請依官方公告或作業系統套件來源儘速完成更新,若使用已停止支援(EOL)的舊版本應立即規劃升級。
2. 清查具複寫權限的帳號:全面盤點具有REPLICATION權限的角色,移除無業務需求的過高權限,並檢視相關帳號是否存在憑證共用或長期未更換等風險。
3. 嚴格限制邏輯解碼輸出外掛:版本更新後應檢查output_plugin_libraries設定,僅允許實際使用且經確認可信的輸出外掛,切勿為了相容性便利而任意放寬允許範圍。
4. 限制資料庫伺服器對外連線:防火牆應限制資料庫主機不必要的對外連線,重點封鎖SMB(Port 445)與NFS(Port 2049)流量,並停用未使用的自動掛載服務。
5. 落實異常複寫活動監控:持續監控非預期來源建立複寫槽、載入異常輸出外掛名稱及REPLICATION帳號的登入行為,並同步審查pg_hba.conf是否存在過度寬鬆的複寫存取規則。
