🇬🇧 English • 🇷🇺 Русский • 🇨🇳 中文
如果您在 MSCodeBase Intelligence 中发现安全漏洞,请以负责任的方式报告。
- GitHub 安全公告:创建公告
- 在主题行中,包含:
[SECURITY]+ 问题的简要描述
- 漏洞描述(类型、组件、利用条件)
- 复现步骤
- 影响评估(机密性、完整性、可用性)
- 概念验证(如适用)
- 修复建议(可选)
| 严重程度 | 首次响应 | 修复 |
|---|---|---|
| 严重 | 7 天 | 30 天 |
| 高 | 14 天 | 90 天 |
| 中 | 14 天 | 90 天 |
| 低 | 30 天 | 180 天 |
| 版本 | 支持状态 |
|---|---|
| 3.2.x | ✅ 当前(混合 LSP+MCP) |
| 2.x | |
| < 2.0 | ❌ 否 |
从 2.0.0 版本开始,MSCodeBase Intelligence 使用结合语言服务器协议(LSP)和模型上下文协议(MCP)的混合架构:
- LSP 服务器:通过 Tree-sitter 处理代码解析,向编辑器提供符号
- MCP 服务器:提供语义搜索、embeddings 和 AI 代理交互
- 交互方式:两个组件均在本地工作,通过 stdio/SSE 交换数据
默认情况下 — 没有任何数据离开。 所有组件完全在本地运行:
| 组件 | 数据 | 发送至 |
|---|---|---|
| LanceDB | 向量索引,代码块 | 本地(.codebase_indices/) |
| Tree-sitter | AST 解析 | 本地,进程内存中 |
| SafePathManager | 路径验证 | 本地,无网络 |
| MCP 工具 | 搜索/分析请求 | 本地,stdio/SSE |
唯一的例外:如果配置了 LM Studio 或 Ollama 集成来生成 embeddings — 请求仅发送到本地端点(LM Studio 为 localhost:1234,Ollama 为 localhost:11434)。不使用云 API。
- 所有 MCP 工具验证:每个工具检查输入参数的类型、长度和格式
- 路径遍历保护:
SafePathManager阻止访问项目目录之外的内容(../,项目外的绝对路径) - SQL 注入:LanceDB 使用参数化查询,用户输入从不插入到查询中
- 输入大小限制:对查询长度和索引文件大小有限制
- 本地存储:整个索引存储在项目内的
.codebase_indices/中 - 路径哈希:项目路径经过哈希处理以隔离索引
- 过滤:
.gitignore中的文件和二进制文件被排除在索引之外 - 加密:数据在磁盘上未加密(假定文件系统受操作系统保护)
- 文件系统:访问仅限于项目目录
- 权限:无需提升权限(不需要
sudo/管理员权限) - 网络访问:操作不需要网络访问(本地 LM Studio/Ollama 除外)
| 风险 | 描述 | 缓解措施 |
|---|---|---|
| LSP 服务器可通过网络访问 | 如果在 SSE 模式下运行,可能被外部访问 | 默认:stdio;SSE 仅在 localhost 上 |
| MCP 工具接受任意输入 | 恶意代理可能传入无效数据 | 每个工具进行验证 |
| 通过 embeddings 泄露代码 | 代码被发送到 LM Studio 进行索引 | 仅本地 LM Studio;不支持云服务 |
| 索引期间的竞态条件 | 并发写入 LanceDB | 块版本控制,原子更新 |
- 如果不需要远程访问,请对 LSP 和 MCP 使用 stdio 模式
- LM Studio/Ollama:确保服务器仅监听
127.0.0.1,而非0.0.0.0 - 防火墙:阻止 MSCodeBase 进程的出站连接(如果不使用云服务)
- 更新:通过 Dependabot 监控依赖更新
- GitHub Dependabot:自动依赖扫描
- Dependabot 警报:依赖项中关键 CVE 的通知
| 依赖项 | 用途 | 安全说明 |
|---|---|---|
| LanceDB | 向量数据库 | 本地存储,无网络访问 |
| Tree-sitter | 代码解析 | 沙箱化,无任意代码执行 |
| LM Studio SDK | Embeddings | 仅本地端点 |
| Ollama SDK | 备选 embeddings | 仅本地端点 |
我们感谢帮助使 MSCodeBase Intelligence 更加可靠的安全研究人员。
最后更新:2026-06-28