漏洞概述 漏洞名称:任意文件删除漏洞(Arbitrary File Deletion) 漏洞描述:在WebUI的会话删除API中, 端点未对客户端提供的 进行验证,导致攻击者可以通过构造恶意 值,删除服务器上的任意文件。 漏洞类型:任意文件删除 严重程度:高 影响范围 受影响代码: - - 影响描述: - 攻击者可以删除WebUI会话存储目录之外的任何可写文件。 - 在未经身份验证的部署中,该漏洞可被远程利用。 - 在已认证的部署中,低权限用户也可触发此漏洞。 修复方案 修复措施: - 在路径构造前验证 值。 - 拒绝包含绝对路径或遍历样式的 。 - 解析并检查候选删除目标是否在 内。 - 仅允许删除会话存储内的合法会话文件。 - 添加回归测试以覆盖绝对路径和遍历载荷。 POC代码 安全复现步骤 1. 使用隔离状态目录启动WebUI。 2. 在 外创建一个可写文件,例如 。 3. 发送以下请求: 4. 观察漏洞行为: - API返回 - 被删除 预期漏洞行为 即使端点仅应删除会话文件, 外的文件也会被删除。 路由报告成功,因为它将攻击者控制的视为正常会话文件。 变更内容 在路径构造前验证 。 拒绝不安全的会话标识符。 在unlink前解析候选删除目标。 在 内强制执行包含。 保留会话索引无效化行为。 添加回归测试以覆盖绝对路径和遍历载荷。 文件变更 api/routes.py:添加会话ID验证和解析路径包含强制执行。 tests/test_sprint3.py:添加绝对路径和遍历载荷覆盖。 维护者影响 补丁狭窄且仅限于会话删除输入验证和路径包含。 不更改会话存储格式、聊天执行、流式传输、身份验证行为或配置文件行为。 现有有效会话删除行为保持不变。 修复理由 最安全的修复是将此路由与项目的现有会话ID信任模型对齐,而不是将删除视为特殊情况。 验证标识符并强制执行解析路径包含确保路由只能在合法会话文件上操作。 变更类型 安全修复 错误修复 测试 新功能 破坏性变更 仅文档变更 测试计划 披露说明 此PR中的声明仅限于审查的 代码路径和重现的文件删除行为。 此PR不声称更广泛的任意文件读写影响跨其他路由。 修复有意限制在删除路径信任边界,以便更改易于审查和难以回归。