近幾年來,黑客攻擊行爲呈現出日益複雜和隱蔽的趨勢,對個人和組織的安全造成了嚴重威脅。黑客們不斷尋找新的漏洞和安全漏洞,利用各種手段進行網絡攻擊,包括惡意軟件、網絡釣魚、勒索軟件等。因此,我們每個人都需要關注漏洞風險,加強網絡安全意識,及時更新系統補丁。目前有網友反饋受到攻擊勒索,雖然我們的商業客戶並沒受到影響,但也請儘快升級補丁,避免未知的風險!
一、升級freemarker補丁,解決執行任意命令問題
1、升級freemarker補丁,解決Freemarker模板注入導致遠程命令執行, 遠程攻擊者可利用該漏洞調用在系統上執行任意命令
無論你的jeecg是那個版本都可以採用此方案:重寫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初始化,具體大家請按照自己的版本去重寫覆蓋。
二、升級積木報表到最新版1.6.5,解決無權限可訪問問題
1、升級依賴版本號
修改pom.xml中積木報表的依賴版本號,這裏測試的是從1.5.6升級到1.6.5無升級SQL,其他版本請自查積木報表升級日誌
<!-- 積木報表-->
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot-starter</artifactId>
<version>1.6.5</version>
<exclusions>
<exclusion>
<artifactId>autopoi-web</artifactId>
<groupId>org.jeecgframework</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-nosql-starter</artifactId>
<version>1.6.0</version>
</dependency>
2、修改yml配置
jeecg:
jmreport:
mode: dev
#多租戶模式,默認值爲空(created:按照創建人隔離、tenant:按照租戶隔離) (v1.6.2+ 新增)
saasMode:
# 平臺上線安全配置(v1.6.2+ 新增)
firewall:
# 數據源安全 (開啓後,不允許使用平臺數據源、SQL解析加簽並不允許查詢數據庫)
dataSourceSafe: false
# 低代碼開發模式(dev:開發模式,prod:發佈模式—關閉在線報表設計功能,分配角色admin、lowdeveloper可放開限制)
lowCodeMode: dev
3、修改org.jeecg.config.jimureport.JimuReportTokenService加入實現新方法
@Override
public String[] getRoles(String token) {
String username = JwtUtil.getUsername(token);
Set roles = sysBaseApi.getUserRoleSet(username);
if(CollectionUtils.isEmpty(roles)){
return null;
}
return (String[]) roles.toArray(new String[roles.size()]);
}
三、其他官方漏洞通知專題
【漏洞通知】JeecgBoot 修復 Freemarker 模板注入漏洞
積木報表 JimuReport v1.6.2-GA5 版本發佈 — 高危 SQL 漏洞安全加固版本
【漏洞通知】JeecgBoot 修復SQL注入風險
【漏洞通知】Apache Shiro又爆認證繞過漏洞CVE-2023-34478
JeecgBoot升級Nacos至2.2.3版本解決raft漏洞問題
【高危安全通告】fastjson≤1.2.80反序列化漏洞