Apache Tomcat 漏洞公開發(fā)布僅 30 小時后即遭利用
近日,Apache Tomcat曝出一項安全漏洞,在公開發(fā)布概念驗證(PoC)僅30小時后,該漏洞即遭到攻擊者利用。這一漏洞編號為CVE-2025-24813,主要影響以下版本:
- Apache Tomcat 11.0.0-M1 至 11.0.2
- Apache Tomcat 10.1.0-M1 至 10.1.34
- Apache Tomcat 9.0.0-M1 至 9.0.98
漏洞詳情與利用條件
該漏洞可能導致遠程代碼執(zhí)行或信息泄露,具體利用條件如下:
- 默認Servlet的寫入功能已啟用(默認禁用)
- 支持部分PUT請求(默認啟用)
- 安全敏感文件上傳的目標URL是公開上傳目標URL的子目錄
- 攻擊者知道正在上傳的安全敏感文件的名稱
- 安全敏感文件通過部分PUT請求上傳
成功利用該漏洞后,惡意用戶可以通過PUT請求查看安全敏感文件或向這些文件中注入任意內(nèi)容。
此外,如果滿足以下所有條件,攻擊者還可實現(xiàn)遠程代碼執(zhí)行:
- 默認Servlet的寫入功能已啟用(默認禁用)
- 支持部分PUT請求(默認啟用)
- 應用程序使用Tomcat基于文件的會話持久化機制,且存儲位置為默認路徑
- 應用程序包含可能被反序列化攻擊利用的庫
漏洞修復與利用現(xiàn)狀
上周,項目維護人員發(fā)布公告稱,該漏洞已在Tomcat 9.0.99、10.1.35和11.0.3版本中修復。
但令人擔憂的是,據(jù)Wallarm報告,該漏洞已經(jīng)遭到利用。該公司表示:“該攻擊利用了Tomcat的默認會話持久化機制及其對部分PUT請求的支持。”利用過程分為兩步:首先,攻擊者通過PUT請求上傳一個序列化的Java會話文件;然后,攻擊者通過GET請求引用惡意會話ID來觸發(fā)反序列化。
換言之,攻擊者發(fā)送一個包含Base64編碼的序列化Java有效負載的PUT請求,該負載會被寫入Tomcat的會話存儲目錄,隨后在發(fā)送帶有指向惡意會話的JSESSIONID的GET請求時被執(zhí)行反序列化。
Wallarm還指出,該漏洞利用起來極其簡單,且無需身份驗證。唯一的先決條件是Tomcat使用基于文件的會話存儲。
該公司補充道:“雖然該攻擊利用了會話存儲,但更大的問題是Tomcat對部分PUT請求的處理,這允許攻擊者將幾乎任何文件上傳到任意位置。攻擊者很快就會改變策略,上傳惡意的JSP文件、修改配置并在會話存儲之外植入后門。”
建議運行受影響Tomcat版本的用戶盡快更新實例,以緩解潛在威脅。