新聞

資安業者Cyera公開PostgreSQL漏洞CVE-2026-6471的技術細節,問題可追溯至2014年PostgreSQL 9.4加入的邏輯解碼功能。在已啟用邏輯解碼的PostgreSQL伺服器上,持有REPLICATION複寫權限,但非超級使用者的帳號,可要求PostgreSQL載入指定的程式碼函式庫,以資料庫服務使用的作業系統帳號執行任意程式碼。

邏輯解碼會把PostgreSQL記錄的資料異動轉成外部工具可讀取的內容,用於資料複寫、變更資料擷取(CDC)與資料移轉。複寫帳號可指定輸出插件,舊版PostgreSQL在邏輯解碼流程中,未限制輸出插件指定的函式庫位置,複寫帳號因此可要求資料庫伺服器載入其他位置的程式碼函式庫。

攻擊條件會因作業系統而異,Windows可使用網路共享路徑,讓PostgreSQL經由SMB直接從外部伺服器取得DLL函式庫,如果資料庫伺服器可透過TCP 445埠連至攻擊者控制的SMB伺服器,攻擊者就不必先把惡意檔案寫入目標主機。Linux與macOS要是啟用NFS自動掛載,也可能從網路取得函式庫,而一般Linux、容器與Kubernetes環境則需要先透過其他方式,把惡意函式庫放進PostgreSQL可存取的檔案系統。

惡意函式庫載入PostgreSQL後,程式碼會直接在資料庫行程內執行。研究人員展示的攻擊方式還能利用PostgreSQL內部功能,將原有複寫帳號提升成資料庫超級使用者,取得所有資料庫權限,並修改連線控制與啟動設定,建立重新啟動後仍會載入的後門。

PostgreSQL官方將CVE-2026-6471評為CVSS 7.2,原因之一是攻擊者必須先取得REPLICATION權限,並非未登入即可直接攻擊。官方列出的受影響版本為目前仍受支援的PostgreSQL 14至18,修補版本分別為14.24、15.19、16.15、17.11及18.6。研究人員依程式碼歷史追溯,認為問題從2014年的PostgreSQL 9.4便已存在。

修補後,PostgreSQL會限制邏輯解碼可載入的輸出插件,預設只開放內建插件,使用第三方輸出插件的環境,更新後需要由管理員將信任的插件加入允許清單。PostgreSQL建議受影響版本升級至已修補版本。