ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

允许修改、不许删除,为何仍能删文件?Knowns MCP 的能力授权漏洞

允许修改、不许删除,为何仍能删文件?Knowns MCP 的能力授权漏洞 允许修改、不许删除为何仍能删文件Knowns MCP 的能力授权漏洞一、背景与事实边界项目公告于2026-08-16公开GitHub 漏洞数据库于2026-09-25收录。本次是新收录复盘不是 9 月刚出现的攻击。项目已确认事实包npm knowns标识CVE-2026-86439 / GHSA-9gfj-28hw-jchp受影响0.29.1最低修复0.30.0功能MCP Docs 与 Memory 文件工具0.30.0 发布说明于2026-08-16发布列出该公告并说明文件系统包含关系等加固。本文不把同版本修复的其他独立漏洞并入这个编号。二、技术链路两个边界同时失效**已确认事实**公告描述的存储层将外部路径交给filepath.Join()后执行文件操作没有验证目标仍属于预期目录。涉及.md文件的读取、写入和删除。另一方面docs.update携带newPath时会执行重命名写入新位置再删除旧位置权限注册却仅标记CapWrite。因此允许写、禁止删的预设不能完整限制该动作。**工程分析**路径问题回答“能碰到哪个对象”能力问题回答“能对它做什么”。两者不能相互替代。即使把目标限制到项目内禁止删除的用户仍不应通过另一个操作删除项目文件即使补齐删除权限允许访问的对象也必须继续受路径约束。公告还描述了未设置服务器密码时与其他认证问题叠加的条件。不能据此声称所有部署都无需凭据暴露判断必须分别记录服务认证配置与调用者原本拥有的能力。三、从接口标签转向效果集合下面是建议采用的审计模型不是对官方补丁实现方式的复述。用户意图可能产生的效果应验证的对象更新正文写入原文件重命名写入、删除可能覆盖原文件与新文件导入归档创建、覆盖、目录创建每个展开后的对象清理历史删除每条历史记录及共享引用先生成操作计划再对每个效果授权最后执行可以让权限检查接近真实行为。计划生成后仍需考虑执行时资源变化不能把计划当作不受并发影响的事实。四、安全内存模型没有删除权限就不移动示例只修改内存字典不读写磁盘、不调用 MCP 服务。它演示了如何在任何修改发生之前验证完整效果集合。fromcopyimportdeepcopydefupdate_doc(store,old,new,body,allowed):effects{write}ifnew!old:effects.add(delete)ifnoteffectsallowed:raisePermissionError(missing operation capability)ifoldnotinstore:raiseKeyError(old)ifnew!oldandnewinstore:raiseValueError(overwrite requires separate policy)stageddeepcopy(store)staged[new]bodyifnew!old:delstaged[old]returnstaged original{a.md:sample}try:update_doc(original,a.md,b.md,new,{write})exceptPermissionError:passelse:raiseAssertionError(rename should be rejected)assertoriginal{a.md:sample}assertupdate_doc(original,a.md,a.md,new,{write}){a.md:new}assertupdate_doc(original,a.md,b.md,new,{write,delete}){b.md:new}print(capability checks passed)模型没有实现路径安全或真实事务。生产环境还要分别检查源目录、目标目录、链接解析和覆盖策略并保证失败时不会留下半完成状态。路径库用于解析授权策略负责决定访问资格。五、影响范围与排查**工程推断**AI 代理的工具调用频率会放大权限分类错误但根因并不依赖模型是否“被越狱”。只要调用入口允许构造相关参数后端都必须自行守住边界。把“不许删除”写进系统提示词不能替代存储层授权。建议记录调用身份、工作区标识、动作、源目标标识、授权效果以及结果。对历史docs.update中的改名行为做审计时应查看旧文件是否消失、目标是否越界而不是只搜索名为 delete 的动作。审计日志避免保存完整文档正文防止形成新的数据泄露面。六、研发与安全团队行动清单**P0**升级至 0.30.0 或包含修复的后续版本核实实际执行文件限制管理入口检查密码和访问控制配置。对异常文件变化先保全版本与日志避免立即覆盖证据。**P1**建立工具效果清单重点审查 rename、move、replace、reset、import、restore。为“只读”“可写不可删”等每种预设创建反向测试并断言拒绝操作后所有相关对象保持原状。**P2**统一存储入口在业务授权与文件系统边界上分别设防。对工具新增参数进行安全评审一个可选参数可能改变动作语义却不改变函数名。权限清单和测试也必须随之更新。七、总结能力授权应覆盖实际效果而不是依赖动作名字。路径限制与操作授权是两套必须同时成立的安全性质任何一套缺失都可能让“受限工具”获得超出用户理解的能力。
返回列表