Skip to content

Security: westsource/agentctxsync

Security

SECURITY.md

安全政策 / Security Policy

支持的版本 / Supported Versions

本项目采用日期版本号(YYYY.MM.DD.N)。只有最新版本会得到安全修复:

版本 支持状态
最新版本(latest) ✅ 积极支持
旧版本 ❌ 不再维护,请升级

报告漏洞 / Reporting a Vulnerability

我们认真对待安全问题。请勿在公开渠道(GitHub Issues、讨论区、社交平台)披露漏洞细节。

上报渠道

方式 地址
首选:GitHub Security Advisory(私有上报) https://github.com/westsource/agentctxsync/security/advisories/new
备选:邮件 见仓库维护者主页

上报内容建议

请尽量提供以下信息,帮助我们快速定位与复现:

  • 影响组件(server / mcp client / 某个 adapter / web UI)
  • 漏洞类型与严重程度评估
  • 复现步骤(或最小 PoC)
  • 受影响的版本号
  • 你建议的修复方式(如有)

响应承诺

  • 48 小时内:确认收到上报,并给出初步评估
  • 7 天内:发布修复方案或缓解措施说明
  • 修复完成后我们会公开致谢(如上报者同意署名)

安全注意事项 / Security Notes

  • 服务端密钥:HERMES_SYNC_PG_DSN、HERMES_SYNC_MASTER_KEY、HERMES_SYNC_JWT_SECRET 必须通过环境变量提供(见 server/.env.example),严禁硬编码或提交到仓库。
  • Workspace API Key(ws_xxx)是同步接口的唯一凭证,泄露后请在 Web UI 中"重新生成 Key"立即轮换。
  • 服务端只监听 127.0.0.1:8765(回环,不对外暴露);从其他机器访问必须置于 反向代理(nginx/caddy 等,终止 TLS)之后,并启用 HTTPS。
  • 发信路径有收件人侧限流与每日预算(防"邮件轰炸"/额度耗尽):找回密码、绑定/重发验证邮件 受收件地址与账号维度的冷却限制(1 封/分钟、5 封/天/邮箱;10 封/小时/账号),全站每日上限 HERMES_SYNC_MAIL_DAILY_CAP(默认 200);/web/forgot 另有自托管数学验证码, 计数落在 mail_stats 便于告警。详见 docs/server-deployment.md。
  • 本项目为自托管工具,数据(会话/消息)包含你的私有 AI 对话,请妥善保护数据库备份。

已知安全设计

  • 密码使用 PBKDF2-SHA256(600,000 轮迭代,每份哈希自带迭代数,登录时若低于当前策略会 就地重算升级)存储
  • JWT 签名使用 HMAC-SHA256,过期时间可配置(HERMES_SYNC_TOKEN_EXPIRE,默认 24 小时)
  • 会话消息渲染对 HTML 转义(XSS 防护);Markdown 里的原始 HTML 按字面显示,不参与渲染
  • 远程会话 id 经过路径穿越校验后才写入本地存储
  • 客户端自动更新对每个文件做 SHA256 校验(防篡改/截断),版本写入 .hermes-sync-version
  • 租户隔离:Web UI 的会话/消息/搜索接口一律以 workspaces.user_id 限定归属,管理员只能 管理用户、邀请码与工作空间元数据,读不到任何人的会话内容(/web/admin/* 不含会话正文)
  • 限流(进程内固定窗口,按 key 而非仅按 IP):注册 10 次/10 分钟/IP、登录 30 次/10 分钟/IP、 验证码 30 次/5 分钟/IP、绑定/重发验证邮件 5 次/10 分钟/IP、找回密码 5 次/10 分钟/IP; 发信另按收件人 1 封/分钟 + 5 封/天、按账号 10 封/小时、按调用方自填地址 1 封/10 分钟, 并有全站日预算(见上)
  • 自托管验证码:/web/register、/web/forgot 使用服务端生成的算术验证码,图形为纯矢量 折线(SVG 里没有任何可读字符),答案只存服务端、一次性、带 TTL;换 IP 不能放大发信额度 (收件人/账号维度的桶与 IP 无关)
  • 邮箱令牌一次性:验证/重置令牌只存 SHA-256 摘要,带 TTL,重发即吊销旧令牌;已验证邮箱在 全库唯一
  • 审计:配额拒绝、邀请码与账号相关动作写 audit_log(仅私有运维后台可读)

There aren't any published security advisories