CVE-2026-22249CVE-2026-22249是Docmost协作维基和文档软件中的一个高危安全漏洞。该漏洞存在于0.21.0到0.24.0版本之间,由于Zip导入功能中的路径遍历(ZipSlip)问题,攻击者可以向服务器任意位置写入文件。Docmost是一款开源的协作维基和文档管理平台,用户可以通过其导入功能上传ZIP压缩包来批量导入文档内容。漏洞的具体位置位于apps/server/src/integrations/import/utils/file.utils.ts文件中,该文件在处理ZIP包内的文件名时缺乏必要的路径验证和清理。当攻击者构造一个包含特殊构造的文件名的ZIP包时(如使用../这样的路径遍历序列),可以通过解压操作将文件写入到目标目录之外的任意位置。这种攻击可能导致远程代码执行、配置文件篡改、服务中断等严重后果。漏洞的CVSS评分为7.1,属于高危级别,攻击向量为网络攻击,需要低权限认证,无需用户交互即可利用,对可用性造成高影响。
该漏洞的核心问题在于ZIP解压过程中的路径遍历防护缺失。在file.utils.ts文件中,解压ZIP文件时直接使用ZIP包内文件的名字创建文件,而没有对文件名进行安全验证。攻击者可以通过在ZIP文件中嵌入包含路径遍历序列(如../../)的文件名,实现将文件写入到预期目录之外的位置。例如,文件名可以是../../../../var/www/html/static/evil.js,这样在解压时文件会被写入到Web服务器的可执行目录,从而实现远程代码执行。攻击利用的具体步骤包括:首先构造一个包含恶意文件名的ZIP包,然后通过Docmost的导入功能上传该ZIP文件,系统会自动解压并写入文件,由于缺少路径验证,攻击者可以控制文件的写入位置。修复方案是在解压前对文件名进行规范化处理,移除所有路径遍历序列,或确保文件只能写入到预定义的目录范围内。