CVE-2026-44738Grav是一个基于文件的Web平台。在2.0.0-rc.2版本之前,Twig沙箱白名单存在安全缺陷。拥有admin.pages角色的低权限用户可以利用该漏洞在页面正文中调用config.toArray()函数。此操作会将整个站点合并后的配置信息转储到渲染的HTML中,导致包括SMTP密码、AWS密钥、OAuth客户端密钥和API令牌在内的所有插件机密信息泄露。利用该漏洞无需管理员权限,攻击者只需具备页面编辑权限即可获取系统核心敏感数据。
该漏洞的根本原因是Grav CMS中Twig模板引擎的沙箱安全机制配置不当。Twig沙箱旨在限制非管理员用户在模板中可访问的PHP函数和方法,以防止执行危险操作。然而,在受影响版本中,沙箱的允许列表过于宽松,允许具有admin.pages权限的用户调用全局配置对象的toArray()方法。当攻击者在页面内容中插入特定的Twig标签(如{{ config.toArray() }})时,服务器端会解析该标签。由于config对象包含了应用程序的所有配置项,包括明文或加密后的第三方服务凭证,调用toArray()会将这些对象结构转换为可读字符串并直接输出到响应的HTML源码中。攻击者无需复杂的交互,只需查看页面源代码即可窃取高价值凭据,进而接管关联的外部服务。