觀點 · 資訊分享
Apache MINA 與 Camel 同日爆 9.8 分反序列化漏洞:用到的 Java 專案請升級
Apache MINA(CVE-2026-41635)與 Apache Camel 的 JMS 相關元件(CVE-2026-40860)同日公布嚴重漏洞,成因都是反序列化沒有擋住惡意類別,在特定條件下可能導致遠端執行程式碼。請升級到官方修正版。
- 發布
- 2026-04-27
- 篇幅
- 約 4 分鐘 · 1,644 字
- 結構
- 7 節 + 3 題常見問題
- 標籤

一句話看懂:Apache MINA 與 Apache Camel 同一天公布兩個 9.8 分的反序列化漏洞,成因都是收到的物件沒擋住惡意類別;用到的 Java 專案請升級到官方修正版。

先用白話講:什麼是反序列化?
程式之間傳資料,常常要先把物件「打包」成一串位元組(序列化),收到後再「拆包」還原(反序列化)。就像收到一個快遞:拆開前,你最好先確認裡面是什麼,而不是看到什麼就照單全收。
如果拆包時沒有限制「允許拆出哪些類型的東西」,寄件人就可能塞進危險物品,一拆開就出事。這類漏洞就叫不安全的反序列化。
發生什麼事
2026 年 4 月 27 日,GitHub 公布 Apache 的兩份嚴重公告,CVSS 3.1 皆為 9.8:
- Apache MINA(CVE-2026-41635):
AbstractIoBuffer.resolveClass()有兩條分支,其中一條(處理靜態類別或基本型別)完全沒有檢查類別,繞過了類別白名單,可能導致任意程式碼被執行。受影響的是呼叫IoBuffer.getObject()的應用 - Apache Camel(CVE-2026-40860):camel-jms 等元件在處理收到的 JMS ObjectMessage 時,呼叫
getObject()反序列化,卻沒有套用任何過濾器或類別白名單
影響範圍與修正版本
| 元件 | 受影響版本 | 修正版本 |
|---|---|---|
| Apache MINA | 2.0.0 到 2.0.27 | 2.0.28 |
| Apache MINA | 2.1.0 到 2.1.10 | 2.1.11 |
| Apache MINA | 2.2.0 到 2.2.5 | 2.2.6 |
| Apache Camel | 3.0.0 到 4.14.6 | 4.14.7(LTS 4.14.x) |
| Apache Camel | 4.15.0 到 4.18.1 | 4.18.2 |
| Apache Camel | 4.19.x | 4.20.0 |
給開發者的技術細節
- Camel 的條件:只要
mapJmsMessage選項啟用(預設就是)、且 Camel 作為 JMS 消費者,就會走到這段程式;官方說明,攻擊者需要能把特製的 ObjectMessage 送進被消費的佇列或主題,且類別路徑上有可利用的 gadget 鏈 - Camel 受影響的元件:camel-jms、camel-sjms、camel-sjms2、camel-amqp,以及建立在 JmsComponent 上的 camel-activemq、camel-activemq6
- MINA 的條件:應用有呼叫
IoBuffer.getObject();官方的修正是更早套用類別白名單 - 可用依賴樹工具(例如
mvn dependency:tree)確認專案實際用到的版本,連同間接依賴一起檢查
我的看法
就算平常不寫 Java,很多企業系統的底層也是這些套件,接案時可能在客戶的老系統裡遇到。最容易被忽略的是「間接依賴」:你沒有直接引用 MINA,但別的函式庫引用了它。
如果你負責維護這類系統,我的建議是:先查依賴版本,再看有沒有真的呼叫會觸發反序列化的功能;順便檢查哪些訊息佇列是外部可以寫入的。這比單純升級更能判斷風險大小。
名詞小辭典
- 序列化 / 反序列化:把物件轉成可傳輸的位元組,以及把位元組還原回物件。
- JMS:Java 的訊息服務標準,用來在系統之間透過佇列傳訊息。
- Gadget 鏈:程式庫裡既有的程式碼片段,被攻擊者串起來達成惡意目的。
- 白名單(Allowlist):只允許清單內的類別,其餘一律拒絕。
資料來源
常見問題
什麼是反序列化漏洞?
程式把收到的一串資料還原成物件時,如果沒有限制可以還原哪些類別,攻擊者就可能送來精心設計的資料,讓程式在還原過程中執行不該執行的動作。
我的專案要怎麼確認有沒有受影響?
MINA:看你有沒有使用 2.0.28、2.1.11、2.2.6 以前的版本,且呼叫 IoBuffer.getObject()。Camel:看你有沒有使用上述 JMS 系列元件、且 Camel 作為訊息消費者,版本低於 4.14.7、4.18.2 或 4.20.0(依所在版本線而定)。
Camel 的攻擊要滿足什麼條件?
官方說明:攻擊者要能把特製的物件訊息送進 Camel 應用所消費的佇列或主題,且應用的類別路徑上存在可被利用的反序列化「gadget」程式碼鏈。
接著讀
全部觀點 →Cloudflare 為 Brotli 漏洞緊急上架 WAF 規則:預設只記錄不攔截,上線前先檢查你的覆寫設定Brotli 壓縮函式庫爆出 CVE-2026-111497 後,Cloudflare 在 10 月 25 日為 Managed Ruleset 緊急加了兩條規則,預設只記錄、不攔截。如果你曾把整組規則改成封鎖,新規則上線就會直接擋下符合的請求。閱讀 →Ollama 加入 d3 決策模型:本機就能做分類、是非題與評分,最小 2B 版約 3.6GB 記憶體Ollama 0.40.11 在 10 月 24 日帶進 vLLM Semantic Router 的 d3 決策模型。它不聊天,只回答「分到哪一類、是或不是、幾分」,有 2B 到 27B 四種大小,Apache 2.0 授權,可以在自己的電腦上跑。閱讀 →自架 Postiz 連修 2 個高危漏洞:註冊帳號就能偽造登入權杖、讀走伺服器檔案,請升到 v2.25.3開源社群貼文排程工具 Postiz 在 10 月 24 日發布 v2.25.3,修正兩個 CVSS 9.6 以上的漏洞:一般註冊用戶可以偽造登入權杖接管別人的組織,也可能讀走伺服器上的檔案。開放註冊預設是開啟的。閱讀 →