CVE-2025-66299CVE-2025-66299是Grav CMS中的一个高危安全漏洞,CVSS评分达到8.8分。该漏洞属于服务器端模板注入(Server-Side Template Injection,SSTI)类型,允许具有编辑权限的认证用户在服务器上执行任意代码。Grav CMS是一个基于文件的Web平台,在全球范围内被广泛使用。该漏洞的根本原因在于安全沙箱未能完全保护Twig对象,使得攻击者可以通过精心构造的Twig模板指令与Twig对象进行交互(如调用方法、读写属性)。攻击者可以利用这一特性,向Twig的system.twig.safe_filters属性添加任意函数,从而绕过Grav CMS的安全沙箱限制。由于该漏洞无需用户交互即可被利用(UI:N),且可通过网络远程发起(AV:N),对系统的机密性、完整性和可用性都造成了严重影响。漏洞已于2025年12月1日披露,并在1.8.0-beta.27版本中得到修复。建议所有使用受影响版本的用户立即升级到最新版本以消除安全风险。
该漏洞的核心在于Grav CMS使用的Twig模板引擎的安全沙箱实现存在缺陷。在Twig模板引擎中,沙箱模式旨在限制模板中可执行的代码,防止潜在的恶意操作。然而,Grav CMS的沙箱配置未能完全隔离Twig对象的关键属性和方法。攻击者(具有编辑权限的认证用户)可以通过在网页中注入恶意构造的Twig模板指令来利用此漏洞。具体攻击手法包括:首先,攻击者通过编辑页面或内容功能注入包含SSTI payload的Twig指令。由于沙箱未能完全保护Twig对象,攻击者可以访问和操作Twig的系统属性,例如system.twig.safe_filters。通过向safe_filters添加任意函数,攻击者可以绕过沙箱限制。接下来,攻击者可以调用这些自定义函数来执行系统命令,例如使用phpinfo()、system()或exec()等函数读取敏感信息或执行任意代码。这种攻击方式完全绕过了现有的安全沙箱机制,因为攻击者利用的是Twig引擎本身的功能而非直接调用PHP函数。该漏洞的影响范围覆盖所有在1.8.0-beta.27之前的Grav CMS版本。修复方案主要通过加强沙箱的安全配置,确保Twig对象的关键属性和方法不被恶意访问。