本次主要修复了安全漏洞:Beetl 存在 SSTI 漏洞[BUG]。此漏洞不像JSON序列化工具安全漏洞具有普遍性,漏洞只会发生于"在线运行模板引擎"的系统
如果不使用此版本,为了避免漏洞,可以禁用Beetl本地Class调用,也可以自定义安全管理器,加上对java.lang.Class.forName的限制
public class YourNativeSecurityManager implements NativeSecurityManager {
@Override
public boolean permit(Object resourceId, Class c, Object target, String method) {
String className = ....;
String pkgName = ....;
if (pkgName.startsWith("java.lang")) {
return !className.equals("Runtime")
&& !className.equals("Process")
&& !className.equals("ProcessBuilder")
&& !className.equals("Class")
&& !className.equals("System");
}
if(pkgName.startsWith("sun.misc")){
return false;
}
return true;
}
}
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>3.15.1.RELEASE</version>
</dependency>