感谢你帮助让 RunAPI 更安全。本文档说明如何私下报告漏洞,以及部署时的安全加固建议。
RunAPI 目前只对 main 分支的最新代码提供安全修复。请在报告前先确认问题在最新代码上仍然存在。
| 版本 | 是否维护 |
|---|---|
main(最新) |
✅ |
| 其他历史提交 / tag | ❌ |
请勿通过公开 Issue、PR、讨论区或社交媒体披露安全漏洞。请使用下列私密渠道之一:
- GitHub 私有安全公告(首选):在仓库 Security → Report a vulnerability 提交。此渠道全程私密,便于我们协同修复与致谢。
- 邮件:
security@example.com。 可用 PGP 加密(公钥指纹待补充)。
报告请尽量包含:
- 受影响的组件与文件(例如
src/xxx.rs、frontend/…)及大致行号; - 漏洞类型与影响(能做什么、影响谁);
- 复现步骤或 PoC(请只在你自己控制的环境中验证);
- 相关版本 / commit、配置(数据库、缓存、部署方式);
- 你希望的署名方式(默认在修复发布时致谢,可选择匿名)。
- 3 个工作日内确认收到;
- 评估后同步定级(参考 CVSS)与初步修复计划;
- 修复过程中与你保持沟通,并在发布修复后按你的意愿致谢;
- 我们采用协同披露:请在修复发布前对该问题保密。若长时间未能修复,我们会与你商定合理的披露时间。
请注意:定级以实际可利用性与影响为准,不以报告中自评的分数为准。
关注(欢迎报告):
- 鉴权 / 会话 / JWT 相关缺陷(越权、令牌伪造、密钥比较等);
- API Key、余额、计费逻辑可被绕过或篡改;
- 注入类(SQL 注入、SSRF、命令注入等);
- 门户 / 后台的 XSS、CSRF、敏感信息泄露;
- 上游转发 / 协议互转中的凭据泄露或请求走私。
通常不受理(除非能证明实际安全影响):
- 缺少某项安全响应头、且无实际利用路径;
- 需要受害者已被完全攻陷(如已拿到管理员机器)的场景;
- 对默认配置中占位口令 / 密钥的报告——这些本就要求在部署时修改(见下文);
- 自动化扫描器输出但无可复现影响;
- 针对第三方上游供应商而非 RunAPI 本身的问题。
RunAPI 的默认配置面向本地开发,生产部署前务必修改(config/default.toml,或用 RUNAPI_ 前缀环境变量覆盖):
- 管理员口令:修改
[admin] password(或RUNAPI_ADMIN__PASSWORD)。留空则禁止登录。 - JWT 密钥:务必设置强随机的
RUNAPI_AUTH__JWT_SECRET,不要使用默认的dev-secret-change-me。 - 传输安全:在反向代理层启用 HTTPS,不要将后台 / 门户直接暴露在公网明文端口。
- 数据库 / 缓存凭据:为 Postgres / Redis 使用独立强口令,避免随代码提交。
- 最小暴露:按需限制
/admin后台的可访问来源。
若你出于善意进行安全研究,遵守本策略,仅在自己控制的环境中测试,不破坏数据、不影响其他用户、不进行数据外泄或服务拒绝攻击,并在合理时间内私下报告,我们不会就此发起或支持针对你的法律追究。
感谢你的贡献。🙏