CVE-2025-66437CVE-2025-66437是Frappe ERPNext中一个严重的服务器端模板注入(SSTI)漏洞,位于get_address_display方法中。该漏洞允许经过认证的低权限攻击者通过操纵地址模板来执行任意代码或获取数据库敏感信息。Frappe ERPNext是一个开源的企业资源规划(ERP)系统,广泛应用于全球各类企业的财务管理、库存管理、人力资源等核心业务模块。由于该系统处理大量敏感企业数据,此次SSTI漏洞对使用该平台的组织构成重大安全风险,攻击者可以利用此漏洞完全控制服务器并访问后端数据库。
该漏洞的根本原因在于get_address_display方法在渲染地址模板时使用了frappe.render_template()函数,其上下文直接来自address_dict参数。当address_dict为字符串时,系统会查询对应的Address文档并将其作为渲染上下文。问题在于,虽然ERPNext实现了自定义的Jinja2 SandboxedEnvironment,但通过get_safe_globals()仍然可以访问危险函数如frappe.db.sql。攻击者需要具备创建或修改Address Template的权限,通过在模板字段中注入恶意Jinja表达式(如{{ frappe.db.sql('SELECT * FROM __Auth') }}),然后创建匹配的Address文档,最后调用get_address_display API触发渲染,即可实现代码执行或数据泄露。