事件经过
InputSanitizer.sanitizePath()使用未锚定的startsWith比较来防范遍历,但共享基础前缀的兄弟目录名称可以击败该检查,允许路径逃逸预期的基础目录。
影响分析
代理框架的路径清理器是许多其他文件操作依赖的中心控制;当它可被兄弟目录路径绕过时,代理运行时中的下游读/写失去约束,加剧了该包中更广泛的信任边界失败。
攻击途径
该清理器接受路径,其目录名称与预期基础目录共享字符串前缀且作为兄弟目录存在,因此攻击者控制的路径逃逸基础目录,即使字符串检查通过。这加剧了包中的其他遍历/原语问题。
受影响系统
network-ai npm包,InputSanitizer.sanitizePath(),5.15.5之前的版本;在5.15.5中修复
缓解措施
升级至network-ai >= 5.15.5;将未锚定的startsWith检查替换为针对规范基础目录的解析路径包含检查(并注意分隔符)。