這是一篇關於 PostgreSQL 在 2026 年 11 月定期更新中修復的、可導致任意程式碼執行的型別混淆缺陷的解析。本文從防禦方的角度說明發生了什麼、誰受影響以及如何應對,不涉及攻擊步驟。
- CVE
- CVE-2026-6460(PostgreSQL 在 ALTER ... SET DATA TYPE 之後發生型別混淆,可執行任意程式碼)
- 嚴重度
- CVSS v3.1 8.8(High;向量 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H;由 PostgreSQL 分配)
- 型別
- 型別混淆(CWE-843)。以執行資料庫的作業系統使用者身份執行任意程式碼
- 條件
- 需要認證。物件建立者(低權限帳戶)
- 受影響
- PostgreSQL 14 至 18(低於下列修復版本)
- 修復
- 18.7 / 17.12 / 16.16 / 15.20 / 14.25(2026年11月12日發布)
- 同一次更新
- 共修復 52 個漏洞。14.25 是 PostgreSQL 14 的最後一次更新
- 利用情況
- 未見報告。未列入 CISA KEV 的 11 月 10 日版本
- 臨時解決辦法
- 未列出
PostgreSQL 14 不再有後續修復
PostgreSQL 的公告稱,14.25 是 PostgreSQL 14 的最終版本,之後將不再提供安全或缺陷修復。如果您執行的是 14,請應用本次更新,並規劃遷移到受支援的版本。
這是什麼樣的漏洞
項目方描述了一個型別混淆(CWE-843),使物件建立者能夠主要透過 ALTER ... SET DATA TYPE,以執行資料庫的作業系統使用者身份執行任意程式碼。項目方還稱,透過資料定義命令還存在其他路徑。原因是對帶型別的值跟蹤不足:值不能標識自己的型別,因此過時的值可能出現在資料字典條目、PL/pgSQL 變數等位置。
- 條件是帳戶能夠登入資料庫並建立物件。按 CVSS 的說法,就是低權限(PR:L),無需使用者互動(UI:N)。
- 本站不描述利用步驟,也不說明哪些操作是危險的。
- 修復位於 PostgreSQL 核心。官方頁面沒有說明是否需要擴充套件或非預設設定。
- CVE.org 記錄中 CISA 的評估(SSVC)為:利用 none,可自動化 no,技術影響 total。
受影響範圍
| 項目 | 詳情 |
|---|---|
| 產品 | PostgreSQL(核心) |
| 受影響版本 | 低於 18.7、17.12、16.16、15.20 和 14.25 的版本 |
| 修復(18) | 18.7 |
| 修復(17) | 17.12 |
| 修復(16) | 16.16 |
| 修復(15) | 15.20 |
| 修復(14) | 14.25(14 的最後一次更新) |
| 臨時解決辦法 / 緩解措施 | 未列出 |
- 不需要轉儲並重新載入,也不需要 pg_upgrade。PostgreSQL 的公告稱,您只需停止伺服器並更新二進位制檔案。
- 13 及更早版本已經不再受支援。官方頁面針對該 CVE 列出的是 14 至 18。
同一次更新中的其他漏洞
2026年11月12日的版本(18.7、17.12、16.16、15.20、14.25)修復了 52 個安全漏洞和 140 多個缺陷。本文聚焦於 CVE-2026-6460。
- 關於這 52 個漏洞的列表,以及每個 CVE 的嚴重度和受影響版本,見 PostgreSQL 安全資訊頁面。
- 該列表包含不同型別的問題:任意程式碼執行、伺服器記憶體外洩、SQL 注入和權限檢查繞過。其中也包括客戶端工具(pg_dump、pg_restore、reindexdb 等)的修復。
- 部分修復在更新後需要額外步驟(懷疑發生損壞時重建 GIN 索引以及 pg_trgm 索引;如果使用增量備份,則重新做一次完整備份;檢查分割槽表上的約束)。請遵循發布公告中的“Updating”一節。
如何確認自己是否受影響
檢查 PostgreSQL 版本
執行 SELECT version(); 查看伺服器版本。低於 18.7 的 18、低於 17.12 的 17、低於 16.16 的 16、低於 15.20 的 15,或低於 14.25 的 14 均受影響。
找出所有執行它的地方
列出您營運的伺服器、容器、應用內建的 PostgreSQL,以及開發和測試環境。關於如何維護清單,見資產清單檢查表。
檢查哪些帳戶能夠建立物件
找出能夠登入資料庫並建立或修改表等物件的角色。檢查應用所用的帳戶權限是否超出了必要範圍。
對於託管服務,請閱讀服務商的公告
如果您使用 RDS、Cloud SQL 或類似服務,請在服務商的公告中查看您例項的版本以及服務商的處理狀態。
今天該做什麼
把小版本更新到修復版本(優先)
升級到所屬系列的修復版本(18.7、17.12、16.16、15.20 或 14.25)或更高版本。更新之前,確認備份存在且可以恢復(備份要點)。如果有副本,請先確定步驟和順序。
檢查更新後的步驟
在發布公告的“Updating”一節中,檢查哪些適用於您:懷疑發生損壞時重建 GIN 索引、重建 pg_trgm GiST 索引,以及如果使用增量備份則做一次新的完整備份。
更新之前縮小權限
PostgreSQL 的頁面沒有列出臨時解決辦法。作為本站自己的補充,在更新之前,請把能夠建立物件的帳戶限制在最低限度,並且不要給應用所用的帳戶授予它們不需要的建立權限。這不是公告中提到的措施,也不能代替更新。
確認託管服務的更新
請查看服務商的公告,了解支援的版本和更新計劃。還要檢查是否開啟了自動小版本更新,以及維護視窗是什麼時候。
如果您執行 PostgreSQL 14,請規劃遷移
更新到 14.25 之後,請規劃遷移到受支援的版本。確定截止日期和負責人。
利用情況
- PostgreSQL 的頁面沒有提到利用。
- CVE.org 記錄中 CISA 的評估(SSVC)為:利用 none,可自動化 no,技術影響 total(日期為2026年11月12日)。
- 它未列入 CISA KEV 目錄的 11 月 10 日版本。
- 無法確認關於任何攻擊的規模、手法或行為者的公開資訊。
- 多名研究人員和機構報告了該問題,官方頁面列有致謝。
資訊來源
- PostgreSQL — CVE-2026-6460(說明、受影響版本和修復版本、CVSS 8.8,2026年11月12日)
- PostgreSQL — PostgreSQL 18.7, 17.12, 16.16, 15.20, 14.25, and 19 RC 2 Released!(52 項修復、PostgreSQL 14 生命週期終止、更新後的步驟)
- PostgreSQL — Security Information(52 個漏洞的列表)
- CVE.org — CVE-2026-6460(2026年11月12日發布;CWE-843,CISA SSVC 評估)
- CISA KEV — Known Exploited Vulnerabilities Catalog(未列入該目錄的 11 月 10 日版本)
限制物件建立權限是本站在此列出的一般性防禦措施,並非 PostgreSQL 說明的臨時解決辦法。最後確認:2026年11月13日。
延伸閱讀
- 實務:漏洞響應實務手冊 / 資產清單檢查表
- 準備:備份要點
- 判斷:用 CVSS、EPSS、KEV 確定優先順序
- 術語:什麼是 SQL 注入 / 什麼是 CVSS?