開源資料庫「PostgreSQL」的開發團隊 PostgreSQL Global Development Group 於 2026 年 11 月 12 日發布所有支援中版本系列的更新(18.7、17.12、16.16、15.20、14.25),同時推出下一個主要版本的第二個候選版本「PostgreSQL 19 RC 2」。此次更新修補了 52 項安全漏洞與超過 140 個錯誤,其中部分漏洞可能讓攻擊者以執行資料庫的作業系統使用者權限執行任意程式碼。

一次修補 52 項漏洞與逾 140 個錯誤

根據官方公告,此次更新修補的安全漏洞多達 52 項。公告所列的漏洞中,有許多被描述為「執行任意程式碼(executes arbitrary code)」,CVSS v3 基本分數為 8.8 的漏洞也占多數。

漏洞涵蓋範圍相當廣泛。除了伺服器核心的型別混淆(type confusion)、使用已釋放記憶體(use-after-free)與堆積緩衝區溢位之外,PL/Perl、PL/Tcl 等程序語言、dblink 等擴充功能,以及 pgdump、pgrestore、reindexdb、vacuumdb 等隨附工具也都發現問題。其中也包括可繞過列層級安全政策讀取資料列,以及可能洩漏伺服器記憶體內容的漏洞。

代表性漏洞 CVE-2026-6460 讓「可建立物件的使用者」能執行程式碼

具代表性的是 CVSS v3 基本分數 8.8 的 CVE-2026-6460。根據官方說明,主要透過 ALTER ... SET DATA TYPE 會發生型別混淆,使可建立物件的使用者能以執行資料庫的作業系統使用者身分執行任意程式碼。另外也存在其他 DDL 攻擊途徑,例如執行 ALTER TABLE ... ADD COLUMN 後復原,再次新增欄位。

關於成因,官方表示系統對具型別的值追蹤不足,且值本身無法表明自身型別,因此舊的值可能殘留在資料字典項目、PL/pgSQL 變數等系統的許多地方。受影響的是 18.7、17.12、16.16、15.20、14.25 之前的版本,攻擊需要能以低權限登入資料庫。

此次是 PostgreSQL 14 的最後一個版本

此次的 14.25 是 PostgreSQL 14 系列的最後一個版本。官方公告表示,PostgreSQL 14 今後將不再獲得安全性與錯誤修正,並呼籲使用者轉移至較新的版本。

同時發布的 PostgreSQL 19 RC 2 預定於 2026 年 11 月 19 日推出正式版。相較於 RC 1 的變更包括撤回一項與 JSON_ARRAY()、JSON_OBJECT() 相關的變更,官方表示以該功能建立的物件,必須在升級前刪除或重新定義。

使用者應儘早更新並確認更新後的作業

次要版本的更新不需要傾印與重新載入資料,也不需要 pg_upgrade,只要替換程式即可。不過官方公告列出了在特定條件下需要執行的更新後作業,包括重建 GIN 索引、使用 gist_trgm_ops 的 pg_trgm GiST 索引,以及未指定長度的 bpchar 欄位上的 B-tree 索引(REINDEX);使用增量備份時重新取得完整備份;以及確認並修正分割資料表上的 NOT NULL NO INHERIT 限制條件等。

此外,先前漏洞 CVE-2026-6464 的修正導致 psql 無法接受單一指令字串中的多個 COPY ... FROM STDIN,此問題也在此次獲得修正。

CVE-2026-6460 的攻擊前提是可登入的使用者,但在多個使用者或應用程式共用同一資料庫的環境中,影響會更大。自行維運伺服器的使用者,應儘早考慮更新至所用系列的最新版本。使用雲端代管資料庫服務的使用者,則可確認各業者的說明。

筆者觀點

以 PostgreSQL 的定期版本而言,52 項漏洞的數量相當罕見。由於許多漏洞可導致執行任意程式碼,且範圍延伸至程序語言與隨附工具,在授予外部使用者權限的環境,或會還原他人提供之傾印檔的作業流程中,尤其應優先更新。對仍在使用 14 系列的組織來說,這是最後一次修正,必須加快轉移計畫。

總結

PostgreSQL 於 11 月 12 日發布 18.7、17.12、16.16、15.20 與 14.25,修補 52 項安全漏洞與逾 140 個錯誤。代表性的 CVE-2026-6460 可能讓可建立物件的使用者在伺服器上執行任意程式碼。14 系列的更新到此結束,使用者應更新至最新版本,並確認適用於自身環境的更新後作業。