Freemarker模板注入導致遠程命令執行, 遠程攻擊者可利用該漏洞調用在系統上執行任意命令。
JeecgBoot官方已修復,建議大家儘快升級至相關底層依賴和源碼
一、漏洞描述
Freemarker模板注入導致遠程命令執行, 遠程攻擊者可利用該漏洞調用在系統上執行任意命令。漏洞危害等級:高危
二、影響範圍
- minidao-spring-boot-starter 版本 < 1.9.2
- jimureport-spring-boot-starter 版本 < 1.6.1
- codegenerate 版本 < 1.4.4
- hibernate-re 版本 < 3.5.3
- jeewx-api 版本 < 1.5.2
- drag-free 版本 < 1.0.2
三、修復方案,升級依賴版本和源碼
目前該漏洞已經修復,受影響用戶可升級到以下版本
- minidao-spring-boot-starter >= 1.9.2
- jimureport-spring-boot-starter >= 1.6.1
- codegenerate >= 1.4.4
- hibernate-re >= 3.5.3
- jeewx-api >= 1.5.2
- drag-free >=1.0.2
JeecgBoot修復PR:
- https://github.com/jeecgboot/jeecg-boot/commit/acb48179ab00e167747fa4a3e4fd3b94c78aeda5
- https://github.com/jeecgboot/jeecg-boot/commit/baf4b96b3fcffa183e19b87485f5fb8388bb36ae
四、如果你的jeecgboot版本非常老?
可以採用重寫freemarker的類src/main/java/freemarker/template/Configuration.java方式,在實例化Configuration方法裏面默認加入
//freemarker模板注入問題 禁止解析ObjectConstructor,Execute和freemarker.template.utility.JythonRuntime。
this.setNewBuiltinClassResolver(TemplateClassResolver.SAFER_RESOLVER);
參考代碼:針對freemaker2.3.31的重寫Configuration初始化,具體大家請按照自己的版本去重寫覆蓋。