CVE-2025-66295CVE-2025-66295是Grav CMS中的一个高危安全漏洞,CVSS评分达到8.8。该漏洞存在于Grav 1.8.0-beta.27之前的版本中,根源在于Admin UI的用户创建功能对用户输入的验证不足。当具有用户创建权限的低权限攻击者通过管理界面创建新用户时,如果在用户名中注入路径遍历序列(如../Nijat或..\Nijat),系统会将账户配置文件写入到user/accounts/目录之外的任意位置。攻击者可以利用此漏洞写入包含敏感信息的YAML文件,包括email、fullname、twofa_secret(双因素认证密钥)和hashed_password(哈希密码)等字段。这种任意文件写入能力可能导致远程代码执行、配置篡改或敏感信息泄露等严重后果。该漏洞由GitHub安全团队发现并报告,已在1.8.0-beta.27版本中得到修复。
该漏洞是经典的路径遍历(Path Traversal)漏洞,存在于Grav的用户账户创建模块中。当管理员或具有相应权限的用户通过Admin UI创建新账户时,系统会将用户名作为文件名的一部分直接拼接到文件路径中,而没有对用户名进行充分的路径安全验证。具体来说,如果攻击者提交的用户名包含../或..\等路径遍历序列,系统会错误地将文件写入到user/accounts/目录的上级目录或其他可访问路径。例如,用户名设置为../../Nijat会导致系统尝试在user/目录创建Nijat.yaml文件。由于Grav的配置文件采用YAML格式,攻击者可以通过精心构造的用户名写入包含敏感字段的配置文件。这些字段包括:email(邮箱地址)、fullname(真实姓名)、twofa_secret(双因素认证密钥)和hashed_password(加密后的密码)。更严重的是,如果攻击者能够写入PHP文件或覆盖关键配置文件,可能直接实现远程代码执行。修复方案在1.8.0-beta.27版本中加强了对用户名的路径安全检查,确保文件名不包含任何路径遍历字符。