CVE-2025-66434CVE-2025-66434是Frappe ERPNext中的一个高危服务器端模板注入(SSTI)漏洞,CVSS评分8.8。该漏洞存在于get_dunning_letter_text方法中,该方法使用frappe.render_template()渲染Jinja2模板时,将攻击者控制的body_text字段与用户提供的doc上下文一起处理。虽然Frappe框架实现了自定义的SandboxedEnvironment来隔离模板执行环境,但通过get_safe_globals()仍然暴露了frappe.db.sql等危险全局函数。攻击者利用此漏洞可以绕过沙箱限制,在服务器上执行任意代码并获取数据库敏感信息。漏洞影响Frappe ERPNext 15.89.0及以下所有版本,需要认证用户具备Dunning Type配置权限才能利用。
该SSTI漏洞的根本原因在于Frappe ERPNext的get_dunning_letter_text方法不安全地处理模板渲染。攻击者可以通过Dunning Letter Text子表的body_text字段注入恶意Jinja2表达式。由于frappe.render_template()函数在渲染时使用了用户提供的doc对象作为上下文,且get_safe_globals()返回的全局字典中包含了frappe.db.sql等危险函数,攻击者可以构造类似{{frappe.db.sql('SELECT * FROM __Auth')}}的payload来执行SQL查询或使用其他危险函数实现代码执行。攻击流程为:1) 登录系统获取认证资格;2) 导航至Dunning Type配置页面;3) 在Dunning Letter Text中插入恶意Jinja2表达式;4) 触发get_dunning_letter_text方法执行任意代码。