漏洞总结:Media Endpoints Can Escape the Media Root via Symlinks or Junctions 漏洞概述 TinaCMS 的媒体端点存在路径遍历漏洞。虽然近期添加了词法路径遍历检查,但实现仅验证路径字符串,未解析符号链接(symlink)或连接点(junction)的目标,导致攻击者可通过媒体目录下的链接逃逸到根目录外。 根本原因:验证函数使用 和字符串前缀匹配,但后续文件操作直接使用原始路径,未考虑链接解析后的实际位置。 影响范围 具体影响: 通过 实现根目录外文件列出 通过 实现根目录外文件写入 通过 实现根目录外文件删除 绕过近期路径遍历加固措施 POC代码 漏洞验证代码(路径验证函数) 存在缺陷的文件操作代码 本地复现测试结果 测试布局: 媒体根目录: 媒体根下的连接点: → 媒体根外文件: 修复方案 使用规范文件系统检查加固媒体路径验证: 1. 使用 解析真实基础路径 2. 解析真实目标路径(写入时取最近的现有父目录) 3. 比较规范路径而非词法字符串 4. 拒绝任何通过符号链接/连接点离开真实媒体根的操作 > ⚠️ 关键: 对链接路径的文件系统安全性不足