一、漏洞描述
國外 FoxGlove 安全研究團隊於2015年11月06日在其博客上公開了一篇關於常見 Java 應用如何利用反序列化操作進行遠程命令執行的文章。原博文所提到的 Java 應用都使用了 Apache Commons Collections 這個庫,並且都存在一個序列化對象數據交互接口能夠被訪問到。針對每個應用,博文都提供了相應的分析和驗證代碼來說明 Java 應用存在遠程命令執行的普遍性。
二、漏洞危害
機器上一旦有使用上述應用,即處於“裸奔”狀態,黑客可隨時利用此漏洞執行任意系統命令,完全控制機器,破壞或竊取機器上的數據。
三、已確認被成功利用的軟件及系統
使用了 Apache Commons Collections 這個庫的應用理論上都受到漏洞影響。目前已被證實受影響的應用:
- WebSphere
- WebLogic
- JBoss
- Jenkins
- OpenNMS
四、建議修復方案
官方尚未為此漏洞發布補丁,所以無法通過應用升級等方法修復漏洞。
臨時解決方案:
1、使用 SerialKiller 替換進行序列化操作的 ObjectInputStream 類。
2、在不影響業務的情況下,臨時刪除掉項目里的 "org/apache/commons/collections/functors/InvokerTransformer.class" 文件。
3、把受漏洞影響的應用訪問路徑進行隱藏,如改成隨機生成的字符串。