漏洞概述 标题: Non-admin Arbitrary File Write via Path-Authorization Mismatch in / 描述: 一个本地运行时授权漏洞允许非管理员用户通过文件系统工具向全局共享的技能目录写入任意文件。写入/编辑路径守卫重用只读根目录,因此数据/技能目录中的路径对于受限用户来说是不可验证的。这可能导致持久恶意技能注入和潜在远程代码执行,当注入的技能被加载或调用时。 细节: 易受攻击的逻辑位于 。 包括受限用户的全球技能路径(用于读取访问)。 接受绝对路径。 被读取和写入/编辑工作流重用,并且仅检查 中的成员资格。 由于 和 都依赖于 ,受限用户可以提供一个绝对路径,如 并通过授权。 影响范围 生态系统: GitHub(自托管应用程序) 包名称: AstrBot 受影响版本: 修复方案 修复版本: POC代码 重现步骤 1. 从 下载利用脚本。 2. 运行利用脚本: 3. 脚本登录到 ,触发 ,并强制调用一个写入 的工具。 4. 验证文件存在并包含攻击者内容。 5. 从 下载控制脚本。 6. 运行控制脚本: 7. 确认控制情况被阻止,因为超出允许根目录的写入目标。 8. 运行时日志工件: 证据日志 观察到的利用运行输出: 观察到的控制运行输出: 利用后的本地验证: 存在。 文件内容包含 。 影响 这是一个授权绕过/任意文件写入漏洞,在已认证的非管理员上下文中。攻击者可以修改全局共享的技能内容,从而实现持久恶意技能注入,并可能导致后续代码执行路径,当技能被加载或执行时。影响包括共享自动化逻辑的完整性损害和潜在机密性/可用性影响,取决于注入的行为。 弱点 CWE: CWE-863: 不正确的授权 CWE: CWE-284: 不正确的访问控制 发生 永久链接: - https://github.com/AstrBotDevs/AstrBot/blob/67c7445d253846c232477a1ebcb2823a522a029c/astrbot/core/tools/computer_tools/fs.py#L99 - https://github.com/AstrBotDevs/AstrBot/blob/67c7445d253846c232477a1ebcb2823a522a029c/astrbot/core/tools/computer_tools/fs.py#L122 - https://github.com/AstrBotDevs/AstrBot/blob/67c7445d253846c232477a1ebcb2823a522a029c/astrbot/core/tools/computer_tools/fs.py#L158 - https://github.com/AstrBotDevs/AstrBot/blob/67c7445d253846c232477a1ebcb2823a522a029c/astrbot/core/tools/computer_tools/fs.py#L320 - https://github.com/AstrBotDevs/AstrBot/blob/67c7445d253846c232477a1ebcb2823a522a029c/astrbot/core/tools/computer_tools/fs.py#L406