觀點 · 資訊分享

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 Doris#MCP#SQL 注入#CVE-2025-66336
Apache Doris MCP Server 0.6.1 以前有 SQL 注入:資料庫名稱直接拼進查詢,可繞過安全檢查

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

Doris MCP Server 的 SQL 注入資訊圖卡:資料庫名稱被直接拼進查詢,可能讓人讀到範圍外的中繼資料

先用白話講: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 基金會的開源分析型資料庫,常用在報表與資料分析。

資料來源

常見問題

MCP Server 是什麼?為什麼會和資料庫有關?
MCP 是讓 AI 呼叫外部工具的通用協定。Doris MCP Server 就是把 Apache Doris(一種分析用資料庫)包成 AI 能呼叫的工具,讓 AI 能查詢資料庫的結構與內容。
SQL 注入是什麼意思?
程式把使用者輸入的內容,直接組進一段 SQL 指令,卻沒有處理好,使用者就能改變指令的意思。這次是「資料庫名稱」這個欄位被直接組進查詢。
公告標題寫「驗證繞過」,是登入被繞過嗎?
公告標題寫的是「SQL 注入導致驗證繞過」,內文則說明攻擊者可以繞過 SQL 的安全檢查,讀到預期範圍外的中繼資料。內文沒有說明是否能完全跳過登入,所以不必過度解讀。
我該怎麼辦?
升級到 0.6.1 以上,並確認有開啟驗證。另外給 MCP 用的資料庫帳號只給需要的最小權限(例如唯讀、限制可見的資料庫),就算 MCP 層出問題,影響也有限。
LINE