RabbitMQ 爆兩個權限漏洞:先查 OAuth 設定,再升級兼換 secret
Tech News

RabbitMQ 爆兩個權限漏洞:先查 OAuth 設定,再升級兼換 secret

圖片:via iThome — https://www.ithome.com.tw/news/177365
TechLab 編輯部(譯)·

管理介面洩漏憑證同跨租戶資料探測,攻擊條件並唔一樣

RabbitMQ 今次兩個漏洞都同權限檢查有關,不過風險差好遠。CVE-2026-57219 喺特定設定下毋須登入就可攞走 OAuth client secret;CVE-2026-57221 就要攻擊者本身已有可連線帳戶,主要洩漏 queue、exchange 同工作量資料。 所以見到「毋須登入接管 RabbitMQ」呢類講法,唔可以直接套落所有部署。

先確認自己有冇中招

先喺每個節點執行 rabbitmq-diagnostics server_version,容器、Helm chart、代管映像同其他產品內置嘅 RabbitMQ 都要逐一查,唔好淨係望部署文件寫住咩版本。受影響範圍係 3.13.0 至 3.13.14、4.0.0 至 4.0.19、4.1.0 至 4.1.10,同 4.2.0 至 4.2.5。如果版本早過 3.13,呢兩份公告冇列入影響範圍,但嗰啲舊分支本身亦唔適合繼續拖住唔升。

跟住用 rabbitmq-plugins list -erabbitmq_managementrabbitmq_auth_backend_oauth2 有冇啟用,再檢查 rabbitmq.conf、advanced config、Kubernetes Secret 或部署平台注入嘅設定,睇下有冇 management.oauth_client_secret。處理設定輸出時要當佢係敏感資料,唔好貼入 ticket、聊天群組或一般 CI log。Management Plugin 預設常用 TCP port 係 15672,亦要由 load balancer、security group、防火牆同反向代理幾邊核對邊啲來源連得到。

CVE-2026-57219:四個條件要同時成立

官方公告講得幾清楚:部署要用受影響版本、啟用 Management Plugin、設定咗 management.oauth_client_secret,同埋攻擊者接觸到管理 HTTP API,先有機會經舊有 GET /api/auth endpoint 讀到 secret。冇用 OAuth 2、用其他 grant type、冇設定呢個 secret,或者根本冇開 Management Plugin,都唔屬於呢條漏洞嘅受影響配置。

Miggo 指出,攻擊者攞到 secret 後,喺身分供應商同權限設定配合嘅情況下,可以換取高權限 token,再控制 broker。呢條攻擊鏈嘅後半段受 OAuth grant、token claim 同 RabbitMQ 權限映射影響,唔代表漏出任何 client secret 都必然等於管理員權限。不過 secret 本身已經係長期憑證,如果管理介面曾經向唔可信網絡開放,就應該當佢已經外洩咁處理。

CVE-2026-57221:要有登入,但空權限帳戶都做到

第二條漏洞出現喺 AMQP 0-9-1 嘅 passive queue.declareexchange.declare。官方公告確認,只要帳戶可連入某個 virtual host,即使 configure、write、read 權限全空,仍可猜測同確認 queue 或 exchange 名稱;queue 回應亦可帶出訊息數量同 consumer 數量。佢唔會直接讀走訊息內容、改寫 queue 或接管 broker,但共享 vhost 嘅多租戶環境會特別麻煩,因為工作量、命名方式同繁忙時間都可能俾低權限帳戶摸清。

呢條漏洞唔依賴 Management Plugin 或 15672 port,封住管理頁亦解決唔到。未完成升級之前,唔同信任級別嘅應用同租戶應分開 vhost,亦要覆核邊啲帳戶仍可建立 AMQP 連線。iThome 報道引述 Miggo 嘅研究,指暫時冇證據顯示兩個漏洞已喺真實攻擊中遭利用;呢點只代表未見到公開證據,唔適合當成延遲修補嘅理由。

修補次序:收窄入口、升級、再換 secret

官方列出嘅最低修補版本係 4.3.0、4.2.6、4.1.11、4.0.20 或 3.13.15。揀返現有分支可用嘅修補版,先喺 staging 核對 Erlang 相容性、feature flags、plugin 同叢集 rolling upgrade 路徑,再安排生產環境更新。由舊分支直上 4.3.0 唔一定可以一步完成;RabbitMQ 4.3 升級文件寫明,原地升級路徑由 4.2.x 開始,舊叢集要先按官方路徑過渡。

等升級期間,先把 15672 限制喺 VPN、管理 subnet、bastion host 或指定反向代理後面。CVE-2026-57219 亦可暫時停用 OAuth backend、改用唔靠 management.oauth_client_secret 嘅 grant type,或者停用 Management Plugin;呢啲做法要先評估登入同監察會唔會中斷。CVE-2026-57221 冇同等直接嘅網頁端封鎖方法,分拆 vhost 同盡快升級先係實際處理方法。

最後一步好多人會漏:完成修補後,去身分供應商產生新 OAuth client secret、更新 RabbitMQ 設定,再撤銷舊 secret。修補只會關掉洩漏入口,唔會令之前曝光嘅憑證自動失效。之後再查管理 API access log、反向代理紀錄、異常 token 簽發、權限變更同可疑 AMQP 連線;如果 15672 曾經向公網或其他租戶開放,就要由首次用受影響版本嗰日開始查。


參考來源

本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。

分享:WhatsAppThreadsTelegramFacebook