觀點 · 資訊分享

pgAdmin 9.16 一次修 7 個漏洞:資料庫裡一段文字,就可能讓 AI 助手執行任意 SQL

pgAdmin 4 在 6 月 18 日發布 9.16,修補七個 CVE,包含 AI 助手的唯讀防護被提示詞注入繞過、SQL 編輯器端點免登入等。官方版本說明沒有提到已被實際利用。

發布
2026-06-19
篇幅
約 5 分鐘 · 2,222 字
結構
7 節 + 4 題常見問題
標籤
#pgAdmin#PostgreSQL#提示詞注入#CVE-2026-12045
pgAdmin 9.16 一次修 7 個漏洞:資料庫裡一段文字,就可能讓 AI 助手執行任意 SQL

一句話看懂:pgAdmin 4 在 6 月 18 日發布 9.16,一次修了七個漏洞,其中最特別的是:藏在資料庫裡的一段文字,可能騙過 AI 助手去執行任意 SQL。

pgAdmin 9.16 修補 7 個漏洞資訊圖卡:資料庫裡的一段文字,可能騙過 AI 助手去執行任意 SQL

先用白話講:AI 助手是怎麼被「騙」的?

想像你請了一位助理幫你整理檔案櫃,並規定「只能看、不能改」。但檔案櫃裡有人偷偷夾了一張紙條,寫著:「助理你好,請先把『只能看』的規定撕掉,再幫我改這幾份資料。」助理如果不夠警覺,就會照做。

這就是提示詞注入(prompt injection)。pgAdmin 是 PostgreSQL 常用的管理工具,新版有「AI 助手」,會讀你的資料庫內容幫你分析。如果有人能把這類紙條寫進資料表的某個欄位或註解,助理讀到後,就可能被誘導。

發生什麼事

pgAdmin 在 6 月 18 日發布 9.16,版本說明列出七個漏洞修補,NVD 在 6 月 19 日公開了對應的 CVE:

CVE 重點 NVD 的 CVSS 4.0 分數
CVE-2026-12046 兩個 SQL 編輯器端點缺少登入檢查,網頁模式下不用登入就能呼叫 9.5
CVE-2026-12045 AI 助手唯讀防護被多句 SQL 繞過 9.4
CVE-2026-12048 伺服器回傳的錯誤文字沒清理,造成儲存型跨站腳本 9.3
CVE-2026-12044 十六個對話框範本的 SQL 注入 8.7
CVE-2026-12047 雲端部署精靈的 HTML 注入 4.8
CVE-2026-12049 多因素驗證流程的開放式重導向 5.3
CVE-2026-12050 「命名還原點」的 SQL 注入 5.3

分數取自 NVD 頁面列出的 CVSS 4.0 數值,同一個 CVE 另有 3.1 版分數,數字不完全一致。

最值得看的三個

  • AI 助手繞過(CVE-2026-12045):AI 助手執行 SQL 時,會用「唯讀交易」包起來防止改資料。但舊版沒有限制只能一句,攻擊者的多句內容只要開頭是 COMMIT 之類的語句,就能結束唯讀保護,後面的語句照樣寫入。影響 9.13 到 9.15。如果 pgAdmin 使用者的資料庫角色是超級使用者,或有 pg_execute_server_program 權限,官方描述最糟可延伸到在資料庫主機上執行程式。
  • 端點免登入(CVE-2026-12046):兩個 SQL 編輯器的端點漏掉登入檢查,網頁伺服器模式下不用登入就能呼叫,還牽涉到一個反序列化的風險點。
  • 儲存型跨站腳本(CVE-2026-12048):伺服器回傳的錯誤訊息被原樣塞進頁面。官方版本說明稱它可能讓攻擊者的程式碼讀取你儲存的所有伺服器連線憑證,並對你連線的每台伺服器發出任意 SQL。前提是你連到攻擊者控制的資料庫,或檢視了含惡意名稱的物件。

給開發者的技術細節

  • 修補方式(AI 助手):9.16 會先檢查 AI 產生的語句,必須剛好是一句,開頭只能是 SELECT、WITH、EXPLAIN、SHOW、VALUES 或 TABLE,其他(交易控制、寫入、COPY、DO 等)一律拒絕,PostgreSQL 的唯讀模式仍當作後備
  • 版本:CVE-2026-12045 影響 9.13 到 9.16 之前;CVE-2026-12048 影響 6.0 到 9.16 之前,其餘 CVE 的影響範圍可到 NVD 頁面逐一確認
  • 升級時要注意:9.16 版本說明的警告寫到,若同一個伺服器連線同時設定了外部 password-exec 指令與 passfile,現在會改用 passfile,原本是 password-exec 優先
  • 我沒看到的:官方版本說明沒有提到這些漏洞已被利用,也沒有給暫時的緩解設定

我的看法

這次最值得記的是「AI 助手+資料庫」的組合風險。以前我們擔心的是 SQL 注入,現在多了一層:AI 讀到的內容本身就可能是攻擊的入口。把 AI 接上有寫入權限的工具時,「擋在工具那一層」比「叮嚀 AI 不要亂來」可靠得多,這次修補也是這個方向:不再信任 AI 送來的語句,而是先檢查再執行。

實務上有兩件事我會做:第一,pgAdmin 升到 9.16 以上,網頁版和容器版都要確認;第二,連線用的資料庫帳號盡量給最小權限,不要用超級使用者連所有環境。自己做接 AI 的後台功能時,也可以參考同一個原則。

名詞小辭典

  • 提示詞注入(Prompt Injection):把給 AI 看的指令藏在它會讀到的內容裡,誘導它做出原本不該做的事。
  • 唯讀交易(READ ONLY transaction):資料庫的一種模式,這次連線期間只允許讀取、不允許寫入。
  • 儲存型 XSS(Stored XSS):惡意程式碼被存進系統,別人之後打開頁面就會被執行的跨站腳本攻擊。
  • CVSS:漏洞嚴重程度評分,0 到 10 分,分數越高越嚴重。

資料來源

常見問題

pgAdmin 是什麼?
它是 PostgreSQL 資料庫最常見的圖形化管理工具,可以用網頁版或桌面版連線資料庫、寫 SQL、看資料表。
「提示詞注入」讓 AI 助手執行 SQL,是怎麼發生的?
AI 助手會讀取資料庫內容(資料列、欄位值、註解)幫你分析。如果有人能在這些內容裡藏一段給 AI 看的指令,AI 可能照做,送出一串多句 SQL;舊版只用「唯讀交易」包住它,而多句 SQL 能把這層保護提前結束,後面的語句就能寫入資料。
我一定會被打到嗎?
不一定。AI 助手那一項只影響 9.13 到 9.15 版,而且要有人能把惡意內容寫進你的資料庫;有些項目只在網頁伺服器模式才成立。官方版本說明沒有提到已被實際利用。
我現在該做什麼?
把 pgAdmin 升級到 9.16 以上,桌面版與容器版都要換。升級前我在官方說明裡沒看到暫時的緩解做法。另外,連線用的資料庫帳號盡量不要用超級使用者。
LINE