觀點 · 資訊分享
Apache Doris MCP Server 0.6.1 以前有 SQL 注入:資料庫名稱直接拼進查詢,可繞過安全檢查
Apache 在 6 月 22 日公告 Doris MCP Server 的 SQL 注入漏洞 CVE-2025-66336:使用者可控的資料庫名稱被直接拼進查詢,且沒帶呼叫者的權限。0.1.0 到 0.6.1 之前的版本都受影響。
- 發布
- 2026-06-22
- 篇幅
- 約 4 分鐘 · 1,730 字
- 結構
- 7 節 + 4 題常見問題
- 標籤

一句話看懂:Apache 在 6 月 22 日公告 Doris MCP Server 的 SQL 注入漏洞:一個由使用者控制的資料庫名稱,被直接拼進查詢,0.6.1 之前的版本都受影響。

先用白話講:MCP Server 與 SQL 注入
想像你請了一位助理幫你去資料庫的資料室調資料。你只允許他進入「A 資料室」,並且規定每次進去都要出示你給他的通行證。
MCP(Model Context Protocol) 是讓 AI 呼叫外部工具的通用協定。Doris MCP Server 就是把 Apache Doris 這個分析用資料庫,包成 AI 可以呼叫的工具,讓 AI 能查資料庫的結構與內容。
這次的問題像是:助理在查「資料室名稱」時,把你說的名稱「原封不動」寫進調閱單,而且送出調閱單時沒有附上通行證。結果有人把名稱改成特殊的樣子,就可能調閱到不屬於他的範圍。這種把輸入內容直接組進指令的問題,就叫 SQL 注入。
發生什麼事
6 月 22 日(UTC 清晨),Apache 的人員在 oss-security 郵件列表發布公告,重點如下:
- 漏洞編號:CVE-2025-66336,Apache 評為「重要」
- 位置:中繼資料查詢的路徑,使用者可控的資料庫名稱被直接插入 SQL 查詢
- 另一個問題:這個查詢執行時沒有帶上呼叫者的授權資訊
- 後果:經過驗證的攻擊者,或是在沒有開啟驗證時的匿名攻擊者,可能繞過 SQL 安全檢查,讀到預期資料庫範圍以外的中繼資料
- 影響版本:0.1.0 到 0.6.1 之前
- 建議:升級到 0.6.1 或更新的版本
時間點要看清楚
- 2026-03-13:Doris MCP Server 0.6.1 在 GitHub 釋出。版本說明提到「全面的 SQL 注入防護」,新增集中處理的 SQL 驗證模組與 2,500 行以上的安全測試,但沒有明講是針對這個 CVE
- 2026-06-22:Apache 公告 CVE,也就是漏洞公開日
- 後續(2026-08-01):GitHub 上出現 1.0.0 版,新版的細節我沒有查
也就是說,如果你早就更新到 0.6.1 之後的版本,大概已經不受影響;沒更新的人才需要處理。
給開發者的技術細節
- 確認版本:檢查自己部署的 Doris MCP Server 是否在 0.1.0 到 0.6.0 的範圍
- 升級:升到 0.6.1 以上,並重新測試你用到的 MCP 工具
- 驗證要開著:公告特別提到「沒有開啟驗證時」匿名者也可能利用,因此不要關閉驗證,也不要把 MCP 的連接埠直接暴露到網際網路上
- 資料庫帳號最小權限(我的建議,不是公告內容):給 MCP 用的資料庫帳號,只授予必要的資料庫與唯讀權限
- 公告沒寫的部分:沒有提到已被實際利用,也沒有提供暫時的緩解設定
我的看法
這則提醒我的是:AI 工具鏈裡的「橋」常常會被忽略。大家在意的是模型有沒有被誘騙,卻容易忘記橋本身也是一支會處理輸入的程式,一樣會有傳統的注入漏洞。
實務上,如果幫客戶把 AI 接到資料庫,我會把防線放在資料庫那一側:獨立帳號、最小權限、唯讀、只能看特定資料庫,不要靠 MCP 伺服器自己的 SQL 檢查把關。這樣就算橋出問題,攻擊者最多也只能碰到那個帳號看得到的範圍。
名詞小辭典
- MCP(Model Context Protocol):讓 AI 能呼叫外部工具與資料來源的通用協定。
- SQL 注入(SQL Injection):把惡意內容混進 SQL 指令的攻擊方式,常因為輸入沒有被妥善處理而發生。
- 中繼資料(Metadata):描述資料的資料,例如有哪些資料庫、資料表與欄位。
- Apache Doris:Apache 基金會的開源分析型資料庫,常用在報表與資料分析。