鍍金池/ 教程/ Java/ 安全更新
Grape 依賴管理器
與 Java 的區(qū)別
語法風(fēng)格指南
Groovy 開發(fā)工具包
領(lǐng)域?qū)S谜Z言
安全更新
Groovy 與應(yīng)用的集成
運行時及編譯時元編程(end)
測試指南
安裝 Groovy
設(shè)計模式
Groovy 的下載

安全更新

下面介紹 Groovy 的安全補丁或更新信息。注意,除非有特別說明,否則不會有二進制或源補丁。要想獲得補丁文件,需要升級到最新版本的 Groovy。

2.4.4 之前的版本并不是 Apache 發(fā)布的,所以沒有關(guān)于老版本的安全更新官方補丁。

Groovy 2.4.x 缺陷

Groovy 2.4.4 已修補

重要缺陷:CVE-2015-3253: 非信任代碼的遠(yuǎn)端執(zhí)行

描述:

當(dāng) Groovy 在應(yīng)用程序的類路徑中時,應(yīng)用可以采用 Java 的序列化機制來與服務(wù)器進行通信,或者存儲本地數(shù)據(jù)。攻擊者就可能會采用一個特殊的序列化對象,直接在反序列化時執(zhí)行某種代碼。所有依賴序列化,并且無法隔離反序列化對象代碼的應(yīng)用都會受此缺陷影響。

緩解措施

Apache Groovy 2.4.4 是 Apache Software Foundation 最先發(fā)布也是只支持的官方版本。強力建議所有使用序列化機制的用戶都升級到該版本。如果無法升級或者依賴?yán)习姹?,可以?MethodClosure 類(src/main/org/codehaus/groovy/runtime/MethodClosure.java)上使用下列補丁:

 public class MethodClosure extends Closure {
+    private Object readResolve() {
+        throw new UnsupportedOperationException();
+    }

另外,你還應(yīng)該確認(rèn)是否使用了自定義的安全策略文件(使用標(biāo)準(zhǔn)的 Java 安全管理器),或者確認(rèn)你沒有依賴序列化機制來進行遠(yuǎn)程通信。

鳴謝

該缺陷是由惠普的 “零日計劃”(Zero Day Initiative)研究員 cpnrodzc7 所發(fā)現(xiàn)的。