Files
sproutclaw/SECURITY.md
shumengya 812bca79a3
Some checks failed
CI / build-check-test (push) Has been cancelled
docs: 将 CONTRIBUTING.md 和 SECURITY.md 翻译为中文
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 20:49:18 +08:00

3.5 KiB
Raw Blame History

安全政策

本文档旨在帮助你了解 SproutClaw 的安全设计理念及其边界范围。

安全模型概述

SproutClaw 是一个在本地运行的 Coding Agent运行于使用者账号的安全边界之内。监控其操作或将其限制在容器、虚拟机或其他沙箱环境中是使用者自身的责任。

SproutClaw 将本地用户账号及该账号可写的文件视为与 SproutClaw 进程处于同一信任边界内。如果攻击者能够修改用户主目录、工作区、Shell 启动文件、环境变量或 SproutClaw 配置文件,通常即可影响 SproutClaw 或其他本地开发工具的行为。依赖此类本地写入权限的报告不属于安全漏洞,除非其能证明 SproutClaw 本身授予了该写入权限,或越过了操作系统的权限边界。

SproutClaw 依赖使用者仅安装可信扩展、加载可信技能,并仅在可信仓库中使用。这是因为 AGENTS.md 等文件中的内容或代码注释可被用于对 Coding Agent 进行提示词注入,且此类攻击无法从根本上防御。

报告漏洞

如果你认为在 SproutClaw 中发现了安全漏洞,请通过以下方式私下报告:

  • 直接联系项目维护者

报告时请包含:

  • 问题描述及其影响
  • 复现步骤、概念验证或相关日志
  • 受影响的包、版本、提交哈希或配置信息
  • 已知的缓解措施(如有)

请勿为安全敏感问题创建公开 issue。

范围内In Scope

以下属于安全问题的受理范围:

  • 分发包、命令行工具、API 及仓库代码中的安全问题

范围外Out of Scope

以下内容不在安全问题受理范围之内:

  • 本地代码执行或沙箱行为SproutClaw Coding Agent 有意不提供沙箱)
  • 用户自行安装的扩展或技能的行为
  • 在不可信仓库中工作所带来的风险
  • 安装不可信扩展、技能、包或工具所带来的风险
  • 由不可信中间人代理MITM Proxy导致的问题
  • 将 SproutClaw 暴露在公网上的风险
  • 提示词注入攻击
  • 第三方或用户自行控制的凭据泄露
  • 需要在目标机器上具备创建、修改、删除或替换文件、目录、符号链接、环境变量、Shell 配置或其他用户可控本地状态的能力才能复现的报告(包括 ~/.pi~/.pi/agent/models.json、工作区文件、AGENTS.md、技能、扩展、扩展配置、dotfiles 及通过 NFS/漫游配置/dotfile 管理器同步的文件),除非报告能证明 SproutClaw 本身授予了该访问权限
  • 由用户有意弱化配置导致的问题
  • 针对 SproutClaw Coding Agent 使用可信本地输入/配置的资源耗尽/DoS 声明
  • 关于恶意模型输出的报告
  • 用户批准或用户主动发起的本地操作被当作漏洞提交的报告

报告者须知

最有价值的报告应展示当前可复现的安全边界绕过,并附有已证明的实际影响。仅展示预期本地 Agent 行为、提示词注入或恶意可信扩展/技能的报告,在本安全模型下不构成安全漏洞。

例如,若报告显示向可信 SproutClaw 配置文件写入恶意内容会导致 SproutClaw 执行命令、加载攻击者控制的工具、向攻击者控制的端点发送凭据或改变其他行为,此类报告属于范围之外。

提交报告时,请尽量包含以下信息:受影响的确切路径、包版本或提交 SHA、配置信息以及针对最新版本或最新 main 分支的概念验证。对于依赖项报告,请提供证据说明已分发的依赖项确实受影响,且该问题可通过 SproutClaw 触达。