CoreMan 处于早期迭代阶段,目前仅对主分支持续维护,不承诺历史版本的安全修复周期。
若 GitHub 仓库已启用 Private vulnerability reporting,请在 Security → Report a vulnerability 提交私密报告。若入口尚未启用,可在 Issue 中仅请求提供私密联系方式,不要附漏洞细节、可利用凭据或真实业务数据。
报告请包含受影响版本、最小复现步骤、影响范围和脱敏证据。不要通过访问他人数据来验证漏洞。
- 为引导管理员使用独立强密码,完成平台登录验证后关闭引导登录。设置了
BOOTSTRAP_ADMIN_USERNAME时,口令少于 12 个字符或仍为.env.example的占位值,服务会拒绝启动。 - 对外使用 HTTPS;数据库、监控端点及执行后端不应直接暴露给公网。
- API 只采信
FORWARDED_ALLOW_IPS所列反向代理传来的X-Forwarded-For(Compose 部署默认为 Caddy 所在的 edge 网段)。自建编排时填写反向代理的地址或网段,不要使用*,否则登录限流与审计 IP 可被伪造。 - 将
.env、MASTER_KEY、会话密钥、平台凭据、Runtime 身份文件及备份保存在受限位置。丢失 MASTER_KEY 后无法解密已保存凭证。 - Runtime 以所属系统用户的权限运行 AI CLI。使用最小权限用户,按需使用容器或其他操作系统隔离。提示词、安全规则与路径校验并非完整沙箱。
- 技能和 MCP 是可执行依赖,只在技能目录登记已审核的来源:技能安装按目录登记的来源执行,不受节点 Git 主机白名单限制。白名单(节点
git_hosts)只约束机器人工作区的拉取、推送、备份与创建 PR,按实际需要配置。 - 对话、通讯录、附件、运行日志和测试截图可能包含个人或业务信息;分享前逐项脱敏。
- 如密钥曾进入 Git 历史,应先吊销或轮换,再处理历史;仅删除当前文件或增加
.gitignore不足以消除历史泄露。
部署前请按下面的边界决定谁可以创建机器人、成为协作者,以及哪些机器人可以获得业务系统授权。
- 机器人管理员等同于能在 Runtime 上执行命令的人。 机器人的创建者与协作者可以控制提示词、环境变量、工作目录和已开放技能的安装。AI CLI 以免审批模式运行(Claude Code
bypassPermissions、Codex--dangerously-bypass-approvals-and-sandbox),模型按提示词执行命令不会再征求确认。平台在 API 与 Runtime 两侧拒绝改变模型端点、解释器启动项、代理与 TLS 信任等控制类环境变量,这只能阻止绕过模型的确定性劫持,不能约束提示词本身。 - 平台会把当前发言者的业务系统令牌注入 CLI。 机器人获得业务系统授权后,每轮对话都会为发言者签发
BOT_TOKEN_<系统>,有效期覆盖整轮运行。机器人管理员可以通过提示词让 CLI 读取并外发这些令牌,从而以与该机器人对话的任何同事身份访问这些系统,审计中只会看到"该同事与机器人对话"。因此业务系统授权只应给可信机器人:新建业务系统默认不对任何机器人开放,"对全部 AI 员工开放"需要管理员明确选择,存量系统请在业务系统页核查开放范围。系统标识coreman为平台保留,发言者令牌不能用于调用 CoreMan 管理 API。 - 机器人平台凭据泄露等同于可以冒充任意员工。 持有企业微信机器人 secret 或飞书应用 secret 的人可以伪造平台消息,以任意员工身份与机器人对话,并让平台为被冒充者签发业务系统令牌。按生产凭据保管,怀疑泄露时先在平台侧轮换,再更新机器人配置。
- 通讯录同步应用凭据泄露会影响身份映射。 平台账号、登录名与团队归属来自通讯录同步;持有同步应用 secret 且应用具备写权限的人可以篡改通讯录数据,同步后改变 CoreMan 中的身份映射,进而影响权限判定和令牌签发主体。同步应用只授予必要权限。
- 群聊里的会话与工作目录由全体参与者共享,这是有意设计。 一个群聊对应一条 relay 会话(会话键是
chat_id),同一个 AI 员工的所有对话共用它那一个工作目录。群聊的价值正在于共享上下文:上一轮讨论、拉到的数据、生成的文件,下一轮换个人接着说也还在。代价是这些内容在群内不隔离——甲以自己的权限从业务系统取回的数据会留在会话历史与工作目录里,乙下一轮发言时模型仍读得到。凭据不随之共享:身份与令牌每轮按当前发言者重建,静态配置与上一轮残留的身份类变量会被丢弃,模型输出中的凭据在投递前被替换,所以乙拿不到甲的BOT_TOKEN_<系统>,只是看得到甲已经取回的内容。因此请按"同群成员都可以看到彼此经由该机器人取得的数据"来决定哪些机器人进哪些群、以及给哪些业务系统授权;需要按人隔离的场景用私聊,或为该场景单独建一个机器人。个人授权工具(飞书 / 企业微信个人凭据)不受此影响,它们强制要求本人私聊来源。 - 被攻破的 Runtime 主机只影响本节点。 攻击者可以读取该节点上全部机器人的对话、附件、环境变量和发言者令牌(在令牌过期前可冒用),并以节点身份领取派发到该节点的任务;拿不到控制面的 MASTER_KEY、JWT 签名私钥与数据库,也拿不到其他节点的数据。按业务敏感度拆分节点与系统用户。