CVE-2026-0831Templately是WordPress平台上一个广受欢迎的模板库插件,为用户提供了丰富的网站模板资源。该插件在3.4.8及之前的所有版本中存在一个严重的任意文件写入漏洞。漏洞产生的根本原因在于save_template_to_file()函数对用户输入参数缺乏充分的验证和过滤,攻击者可以利用session_id、content_id和ai_page_ids等用户可控参数构造恶意文件路径,从而在服务器的上传目录中写入任意.ai.json文件。此漏洞无需任何认证即可被利用,攻击门槛较低。成功的文件写入攻击可能导致多种严重后果,包括网站数据被篡改、持久性存储型XSS攻击、webshell部署后门等。CVSS评分5.3(中等严重级别),攻击复杂度低,不需要特殊权限和用户交互。建议受影响的用户立即升级到最新版本(3.4.9)以修复此安全漏洞。
漏洞主要存在于Templately插件的API/AIContent.php文件中的save_template_to_file()函数(第38行附近)。该函数在处理用户请求时,直接将session_id、content_id和ai_page_ids等用户输入参数用于构造文件路径,而没有进行适当的输入验证和安全检查。具体问题包括:1)未验证session_id参数是否包含路径遍历字符(如../),攻击者可使用路径遍历序列突破目录限制;2)未对content_id和ai_page_ids进行严格的类型检查和范围限制;3)文件保存路径直接拼接用户输入而未进行路径规范化处理;4)缺少对写入文件类型的验证,.ai.json文件可被替换为任意内容。攻击者通过构造包含路径遍历序列的session_id参数(如../../../evil),结合content_id和ai_page_ids参数,可以将任意内容的文件写入到服务器任意位置。这种文件写入能力可能被进一步利用,例如写入PHP webshell实现远程代码执行,或写入包含恶意JavaScript的HTML文件实现XSS攻击。