CVE-2026-35613coursevault-preview是用于预览课程材料文件的工具,其0.1.1之前的版本存在路径遍历漏洞。由于resolveSafe工具中的边界检查仅使用了String.prototype.startsWith(baseDir)方法,未能正确强制目录边界。当攻击者控制relativePath参数,且存在与baseDir共享字符串前缀的同级目录时,可读取配置目录外的文件。该漏洞已在0.1.1版本中修复。
该漏洞的核心在于路径验证逻辑存在缺陷。开发者在resolveSafe工具中,仅对规范化后的路径执行了startsWith(baseDir)检查。这种检查方式无法防止目录逃逸,因为它只验证了字符串前缀,而没有验证路径是否实际在基础目录的树状结构下。利用条件是文件系统中存在一个与baseDir名称有公共前缀的同级目录。例如,若baseDir为'/app/data',且存在'/app/data_backup'目录,攻击者通过构造'../data_backup/file'的相对路径,经规范化后通过前缀检查,从而绕过安全限制读取敏感文件。