安全人員在甲骨文 WebLogic 服務器(WLS)中發現了一個新的可遠程利用的?洞。該?洞編號 CVE-2019-2725 ,其無需用戶身份驗證即可被遠程利用,且 CVSS 評分達 9.3 分(滿分 10 分),是一個關鍵?洞
甲骨文發布了一個 安全警報 ,指出受此?洞影響的服務器版本包括 10.3.6.0 和 12.1.3.0。這個?洞很容易被利用,黑色產業已經有很多攻擊者用它來植入 勒索程序 , 挖礦程序 及其它惡意程序。甲骨文“強烈建議客戶盡快應用更新”。
此?洞的主要缺陷在于對反序列化的 XML 數據的驗證不充分。通過特制的 SOAP 請求,攻擊者可以在服務器上獲得完整的代碼執行權限。
具體而言,該?洞存在于 /_async/AsyncResponseService 端點上的 WLS 的異步組件中。此端點是用于處理異步請求——響應功能的內部端點。
當 AsyncResponseService 端點收到請求時,它會遍歷 handler 列表,從而允許?個 handler 都有機會處理請求。一個名為 WorkAreaServerHandler 的特殊 handler 會用到 WorkContextXmlInputAdapter,后者又用到 XMLDecoder,這里就是?洞的源頭了。
XMLDecoder 本質上與用來接收 Serializable 對象的 ObjectInputStream 非常相似,區別在于 XMLDecoder 使用 XML 格式而非二進制格式來描述序列化對象。如果?有合適干凈的輸入內容,任何 Java 對象都可以被反序列化。
不幸的是,這個?洞并不是 WebLogic 或 Java 的第一個?洞。2017 年,WebLogic 報告了一個類似的?洞( CVE-2017-10271 )。反序列化?洞在 Java 中很常見,正如 InfoQ 文章《 Java 序列化的狀態 》中所提到的一樣。為了阻止這類?洞,Java 9 引入了 JEP-290 。
甲骨文建議立即使用修補程序解決此問題。其它非官方的建議有:阻止訪問所有的 /_async/* 地址,或刪除 WAR 文件以及同異步功能相關的所有文件。