如果您发现了安全漏洞,请不要在公开 Issues 中报告。
-
通过电子邮件报告
- 发送邮件至安全联系人邮箱
邮件应包含:
- 漏洞的详细描述
- 复现步骤
- 潜在影响评估
- 建议的修复方案(如果有)
-
预期响应时间
- 24小时内:确认收到报告
- 3个工作日内:初步评估结果
- 7个工作日内:详细分析和修复计划
- 30天内:发布安全更新(根据漏洞严重程度)
# 推荐:使用 SSH 密钥
--key=/path/to/private/key
# 不推荐:使用密码(可能出现在进程列表中)
--password=yourpassword# 设置正确的文件权限
chmod 600 ~/.ssh/id_rsa# 避免在命令行中暴露敏感信息
export SSH_PASSWORD="yourpassword"
# 然后在启动时使用环境变量- 仅在可信网络中使用
- 考虑使用 VPN 或 SSH 隧道
- 避免通过公共网络传输敏感数据
命令行参数可能出现在进程列表中,暴露主机、用户名等信息。
缓解措施:
- 使用配置文件而非命令行参数
- 定期轮换 SSH 密钥
- 使用最小权限原则
项目管理终端输出缓冲区,可能成为资源耗尽攻击的目标。
缓解措施:
- 默认限制缓冲区大小(200,000 字符)
- 可配置的最大限制
- 定期清理空闲会话
如果攻击者获得 MCP 客户端访问权限,可能劫持现有 SSH 会话。
缓解措施:
- 使用强身份验证
- 启用会话超时
- 监控异常活动
所有用户输入都经过验证,但仍需注意:
- 命令注入防护
- 路径遍历防护
- 缓冲区溢出防护
# 使用配置文件而非命令行参数
node build/index.js --config /path/to/secure-config.json
# 设置合理的超时时间
--timeout=900000 # 15分钟空闲超时
# 限制缓冲区大小
--maxBufferChars=100000- 启用详细日志记录异常活动
- 监控会话创建和关闭
- 定期审计访问日志
# 检查安全漏洞
npm audit
# 更新依赖
npm update
# 修复安全漏洞
npm audit fixssh2: SSH 客户端库,定期更新以获取安全修复@modelcontextprotocol/sdk: MCP SDK,关注安全公告zod: 输入验证库,确保所有输入都经过验证
我们遵循负责任披露原则:
- 报告者私下向维护者报告漏洞
- 维护者确认并评估漏洞
- 开发修复方案
- 测试修复
- 发布安全更新
- 公开披露漏洞细节(通常在修复后)
我们感谢安全研究人员的负责任披露,并会在安全公告中致谢(如果报告者同意)。