回最新 CVE 列表

CVE-2026-116314 PostgreSQL pg_restore 非 plain archive 驗證不足可造成本機任意程式碼執行

揭露日期 2026-11-12CVSS 3.1:CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

對象資安IT開發

CWE-20 輸入驗證不當

未列入 CISA KEV

PoC 狀態未確認

三句重點

成因
pg_restore 處理 custom、tar、directory 等非 plain archive 時未充分驗證 TOC 與成員內容。
影響
以執行 pg_restore 的作業系統使用者身分,在本機解析 archive 時執行任意程式碼。
條件
攻擊者將惡意非 plain archive 交給受害者或自動化還原流程後,由對方執行 pg_restore。

版本比對

套件❌ 受影響版本✅ 安全版本
PostgreSQL pg_restore14.x < 14.25;15.x < 15.20;16.x < 16.16;17.x < 17.12;18.x < 18.7>= 18.7、17.12、16.16、15.20、14.25

修補方式

升級至 18.7、17.12、16.16、15.20、14.25 以上版本。

攻擊思路

  1. 惡意檔案投遞:攻擊者將特製的 custom、tar 或 directory 格式 archive,經下載、郵件、CI artifact、備份還原介面或物件儲存等方式交給執行端。 來源
  2. 執行 pg_restore:受害者或自動化流程對該非 plain archive 執行 pg_restore。不需先登入目標 PostgreSQL 伺服器;程式碼執行發生在本機行程解析 archive 時。 來源
  3. Archive 解析:pg_restore 先前信任 archive 內容,惡意 TOC 或成員可造成越界讀寫;目錄格式還可能以 TOC 內路徑與符號連結讀取 archive 目錄外的檔案。 來源
  4. 本機程式碼執行:成功時以執行 pg_restore 的作業系統使用者身分執行任意程式碼。攻擊面是客戶端工具,不是 postmaster 本身。 來源

偵測提示

暫時緩解

將 PostgreSQL(含客戶端套件)更新至 18.7、17.12、16.16、15.20 或 14.25;僅更新伺服器、未更新實際執行 pg_restore 的客戶端仍會受影響。請勿對未信任來源的 custom、tar、directory archive 執行 pg_restore,並限制可執行帳號與自動化工作。改用 plain SQL dump 可避開本 CVE,但仍可能落入 psql meta-command 類問題。

通報團隊

複製成可直接貼到 Slack 或 Email 的通報文字。

預覽通報內容
🚨【資安漏洞通報】CVE-2026-116314
等級:High (8.8)
受影響套件:PostgreSQL pg_restore 14.x < 14.25;15.x < 15.20;16.x < 16.16;17.x < 17.12;18.x < 18.7
漏洞簡述:pg_restore 處理 custom、tar、directory 等非 plain archive 時未充分驗證 TOC 與成員內容。;以執行 pg_restore 的作業系統使用者身分,在本機解析 archive 時執行任意程式碼。;攻擊者將惡意非 plain archive 交給受害者或自動化還原流程後,由對方執行 pg_restore。
建議措施:升級至 18.7、17.12、16.16、15.20、14.25 以上版本
詳細連結:https://cve.eacc.online/cve/CVE-2026-116314

參考連結