Token导航 LogoToken导航TokenDH.com
ghostfree (Shane Js) logo
安全风控未说明官方级别未说明来源级核验

ghostfree (Shane Js)

MCP Server

GhostFree是一个本地MCP服务器,用于扫描代码库依赖中的已知漏洞,基于OSV.dev发布的CVE,帮助用户分类和修复发现的问题,并管理已接受的风险。

工具数

6

提示词数

0

GitHub Stars

1

资源数

0
漏洞扫描TypeScriptCursorCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

shane-js

提供方

shane-js

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

什么是GhostFree🚫👻?

每个软件团队都可以使用一些帮助来消除代码库中困扰其依赖关系的幽灵。

GhostFree是一个本地MCP服务器,它使用以下命令根据发布的CVE扫描存储库的依赖关系以查找已知漏洞 OSV.dev,帮助您通过NVD和CISA KEV富集对发现进行分类和修复,并允许您管理可接受的风险——所有这些都可以直接从您的AI编码助手中完成。

快速开始

无需安装、注册或付款。将GhostFree添加到您使用和运行的任何代码工具的MCP设置中 /ghostfree.scan.

VS代码副本(扩展--最简单)

搜索 @mcp ghostfree 在“扩展”视图中(Ctrl+Shift+X)然后单击 安装。然后打开命令面板(Ctrl+Shift+P),跑 MCP:列出服务器,选择 GhostFree,选择 启动服务器,并在提示时确认信任。不需要JSON配置。

VS代码副本(手动配置)

创建或更新 .vscode/mcp.json 在项目根目录中:

{
  "servers": {
    "ghostfree": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "ghostfree", "--repo-path", "${workspaceFolder}"],
      "env": {}
    }
  }
}

克劳德代码

创建 .mcp.json 在项目根目录中:

{
  "mcpServers": {
    "ghostfree": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "ghostfree", "--repo-path", "."]
    }
  }
}

光标

创建 .cursor/mcp.json:

{
  "mcpServers": {
    "ghostfree": {
      "command": "npx",
      "args": ["-y", "ghostfree", "--repo-path", "."]
    }
  }
}

克劳德桌面

添加到您的 claude_desktop_config.json (位置因操作系统而异):

{
  "mcpServers": {
    "ghostfree": {
      "command": "npx",
      "args": ["-y", "ghostfree", "--repo-path", "/path/to/your/repo"]
    }
  }
}

______________________________________________________________________

如何使用

/ghostfree.scan 提示

建议通过内置提示符运行扫描。在您的AI客户端中,键入:

/ghostfree.scan

这驱动了以下流程:

  1. 发现 --查找所有清单文件(requirements.txt、package.json、go.mod、Cargo.toml、pom.xml、\*.csproj等)
  2. 阈值 --如果尚未配置,则要求您提供最低严重级别(严重/高/中/低)
  3. 扫描 --在所有发现的包中查询OSV.dev的CVE
  4. 分诊 --每次显示10个编号的结果。你选择调查哪些。
  5. 丰富 --获取CVSS向量、CWE分类和CISA KEV“被积极利用”状态以供您选择
  6. 补救 --建议升级、代码更改或风险接受,并说明原因和到期日期

示例会话

User: /ghostfree.scan

GhostFree: Discovering dependencies...
Found 84 packages across 2 ecosystems (npm, PyPI).

What minimum severity should I surface? (CRITICAL / HIGH / MEDIUM / LOW)

User: HIGH

GhostFree: Scanning against OSV.dev...

[1] CVE-2021-44228 CRITICAL (10.0) — org.apache.logging.log4j:log4j-core@2.14.1
    Log4Shell: Remote code execution via JNDI lookup
    Fix: upgrade to 2.17.1

[2] CVE-2022-25881 HIGH (7.5) — http-cache-semantics@4.1.0
    ReDoS in http-cache-semantics
    Fix: upgrade to 4.1.1

[3] CVE-2021-28918 CRITICAL (9.8) — netmask@1.0.6
    IP address parsing bypass (SSRF / allowlist bypass)
    Fix: upgrade to 1.1.0

Showing 1-3 of 3. Which would you like to investigate? (e.g., 1, 2, or 'all')

User: 3

GhostFree: [Calls enrich_cve CVE-2021-28918]

CVE-2021-28918 — netmask CRITICAL (9.8)
CVSS: 9.1 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
CWE: CWE-704 (Incorrect Type Conversion)
CISA KEV: Not listed

What it is: netmask@1.0.6 improperly parses octal-notation IP addresses (e.g. 010.0.0.1),
treating them as decimal. This enables SSRF protection bypass and IP allowlist/blocklist
bypass — an attacker can craft an address that appears private but routes to a public host.

Exploit status: Not in CISA KEV. Public PoC exists (SICK-2021-011), ~280k affected projects.

Codebase exposure: netmask is not directly imported — it appears in package-lock.json as a
transitive dependency of pac-resolver@3.0.0 (a transitive dev dependency). No direct
require('netmask') or IP parsing logic found. Reachability is very low.

Recommendation: Upgrade — low effort, patch version (1.0.6 → 1.1.0), no API changes.
netmask is a transitive dependency; use npm audit fix or add a package.json overrides entry
to force netmask@1.1.0.

→ Reply with a number to investigate another CVE, 'back' to return to the list,
  'fix' to apply the recommended fix, 'accept' to record an accepted risk, or 'done' to wrap up.

示例:接受已知风险

User: Accept CVE-2022-25881 — it's only in our CI test pipeline, not reachable in production. Expiry end of year.

GhostFree: [Calls accept_risk CVE-2022-25881]

Accepted risk recorded:
• CVE-2022-25881 — http-cache-semantics (HIGH, CVSS 7.5)
  Reason: Only used in CI test pipeline, not reachable in production
  Expires: 2026-12-31
  ID: 550e8400-e29b-41d4-a716-446655440000

This acceptance is saved to .ghostfree/accepted.yml. Commit this file to share the
decision with your team. The CVE will be suppressed on future scans until expiry.

User: List all accepted risks

GhostFree: [Calls list_accepted_risks]

## Accepted Risks (1)

**CVE-2022-25881** — ✅ expires in 272 days (2026-12-31) | Severity at acceptance: HIGH (7.5)
  ID: 550e8400-e29b-41d4-a716-446655440000
  Reason: Only used in CI test pipeline, not reachable in production
  Accepted: 2026-04-03T10:00:00.000Z

示例:丰富特定CVE

User: Tell me everything about CVE-2021-44228

GhostFree: [Calls enrich_cve CVE-2021-44228]

## Enrichment: CVE-2021-44228

### NVD
CVSS Score: 10.0 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
CWE: CWE-917 (Improper Neutralization of Special Elements in an Expression Language Statement)

References:
• https://nvd.nist.gov/vuln/detail/CVE-2021-44228
• https://logging.apache.org/log4j/2.x/security.html

### CISA KEV
⚠️ CONFIRMED actively exploited in the wild (added to KEV: 2021-12-10)

______________________________________________________________________

工具参考

工具只读说明
discover_dependencies扫描回购清单,按生态系统返回所有固定包
check_cves查询OSV.dev的CVE,按严重程度过滤,应用可接受的风险
enrich_cve从NVD+KEV利用状态中获取CVSS、CWE、引用
list_accepted_risks列出所有已接受的风险,包括到期状态和严重性快照
accept_risk记录已接受的风险,包括原因、到期日期和严重性快照
remove_accepted_risk通过UUID删除可接受的风险

所有只读工具都可以在MCP客户端中安全地自动批准。编写工具(accept_risk, remove_accepted_risk)将提示确认。

check_cves 输入

参数必填说明
packages数组 {name, version, ecosystem} --使用 discover_dependencies 输出
min_severity没有CRITICAL, HIGH, MEDIUM,或 LOW。如果未通过,则按以下顺序解决: GHOSTFREE_MIN_SEVERITY 那么,env-var .ghostfree/config.yml,然后提示选择

accept_risk 输入

参数必填说明
cve_idCVE ID,例如。 CVE-2021-44228
reason商业理由
expires_on到期日期 YYYY-MM-DD 格式
confirm_extended_expiry设置 true 如果到期时间超过1年
severity验收时的严重性标签(CRITICAL, HIGH, MEDIUM, LOW, UNKNOWN)--快照,非实时
cvss_score接受时的CVSS评分——快照,非实时

______________________________________________________________________

配置

创建 .ghostfree/config.yml 在您的repo根目录中设置一个持久严重性阈值,该阈值通过源代码管理与您的团队共享:

min_severity: HIGH

这优先于环境变量。如果两者都没有设置,GhostFree将在扫描时提示您选择。

环境变量

变量描述
NVD_API_KEY可选NVD API键,用于更高的速率限制(50请求/30s与5请求/30s)
GHOSTFREE_MIN_SEVERITY可选--跳过严重性提示并始终使用此阈值(CRITICAL, HIGH, MEDIUM,或 LOW)
GHOSTFREE_DIR可选--使用自定义目录,而不是 .ghostfree/ (适用于两者 accepted.ymlconfig.yml)

VS代码扩展用户: 创建一个 .env 工作区根目录中的文件——扩展程序会自动读取它并将值转发给服务器。对于所有其他设置(手动MCP JSON配置):将这些添加到 "env" 客户端配置文件中的块(.vscode/mcp.json, .mcp.json, .cursor/mcp.json, claude_desktop_config.json等),或将它们导出为系统环境变量。

______________________________________________________________________

可接受的风险管理

当你接受风险时,GhostFree会将其写入 .ghostfree/accepted.yml 在您的repo根目录中。 提交此文件 与您的团队分享已接受的决定。

accepted_risks:
  - id: 550e8400-e29b-41d4-a716-446655440000
    cve_id: CVE-2022-25881
    reason: Only used in CI test pipeline, not reachable in production
    expires_on: "2027-01-01"
    accepted_at: "2026-04-02T10:00:00.000Z"
    severity_at_acceptance: HIGH
    cvss_score_at_acceptance: 7.5

规则:

  • expires_on必需的 --没有开放式接受
  • 1年内到期:立即接受
  • 过期超过1年:需要 confirm_extended_expiry=true
  • 过期的承兑汇票为 从不默默地倒下 --每次扫描时,它们都会作为警告重新出现

______________________________________________________________________

支持的生态系统和清单

生态系统清单文件
python requirements.txt, pyproject.toml, Pipfile.lock, setup.cfg
Node.jspackage.json, package-lock.json
去吧go.mod, go.sum
生锈Cargo.toml, Cargo.lock
Java pom.xml, build.gradle, build.gradle.kts
.NET*.csproj, packages.config

版本范围处理

当清单指定版本范围而不是确切版本时,GhostFree会提取一个版本来查询漏洞数据库。我们使用两种分类法来保持推理清晰: VRC (什么样的说明符 *手段*)以及 VRHP (我们 *做* 关于它)。

版本范围概念(VRC)

VRC是一个与生态系统无关的标签,用于表示版本说明符所表达的内容。多个VRC可以应用于同一条目(例如,一个插入符号范围 *和* 预发布标签是 vrc-caret + vrc-prerelease).

VRC概念生态系统示例
vrc-exact精确固定版本npm 1.4.0python ==2.28.0,货物 1.0.188,Maven 6.0.11
vrc-lockfile-pin从锁定文件解析的版本package-lock.json, Cargo.lock, go.sum, Pipfile.lock
vrc-prerelease预发布/预稳定标签1.0.0-beta, 9.0.0-preview.1, 1.0.0-SNAPSHOT, 32.1.2-jre
vrc-caretCaret(主要兼容)范围npm ^1.2.3,货物 ^1.0.100,诗歌 ^2.28.0
vrc-tildeTilde(次要/补丁兼容)范围npm ~4.17.0,货物 ~1.0.0,诗歌 ~2.28.0
vrc-inclusive-minimum包容性下限(>=)npm >=1.2.0python >=2.28.0,货物 >=0.5
vrc-exclusive-minimum独家下限(>)npm >1.0.0python >2.0,货物 >0.5
vrc-compatible-release兼容版本Python ~=2.28
vrc-compound多个约束组合npm >=1.0.0 =0.5, =2.28,=),提取开发人员已接受的最低版本。这是他们可能运行的最古老的版本,也是最容易受到攻击的版本。
vrhp-skip跳过依赖关系如果说明符仅提供上限(=, >, =^1.2.3, >=1.2.0 = / ~=httpx==0.24.0, pydantic>=2.0.00.24.0, 2.0.0vrc-exact, vrc-inclusive-minimumvrhp-passthrough, vrhp-extract-lower
python pyproject.toml (诗歌)-- ^, ~, >=^2.28.0, >=2.28,= / > / ~=requests>=2.28.0, requests~=2.28, requests===2.0.02.28.0, 2.28, 2.0.0vrc-inclusive-minimum, vrc-compatible-release, vrc-exactvrhp-extract-lower, vrhp-passthrough
python requirements.txt, setup.cfg --预发行requests==1.0.0-beta1.0.0-betavrc-exact + vrc-prereleasevrhp-passthrough
python requirements.txt, setup.cfg=, >, =^1.0, >=0.51.0, 0.5vrc-caret, vrc-inclusive-minimumvrhp-extract-lower
Cargo.toml*, <*, <1.0*(省略)*vrc-wildcard, vrc-upper-bound-onlyvrhp-skip
Cargo.lock1.0.861.0.86vrc-lockfile-pinvrhp-lockfile

______________________________________________________________________

常见问题解答

Q: 为什么我需要比目前的人工智能编码代理更多的东西?\ 你的AI代理对漏洞的知识在训练截止时被冻结。每天都会披露新的CVE——例如:Log4Shell是在2021年12月披露的,在此之前训练的任何模型都看不到它。

GhostFree查询实时权威漏洞报告组织以获取最新信息,因此无论您的模型何时训练,每次扫描都会反映当前的威胁形势。这种额外的上下文对于提高准确性或您的代理可以提供的任何建议或推荐也至关重要。

它还跟踪您接受的风险,包括原因和到期日期,在您的回购中建立一个可审计的记录。

它的目的是尽可能多地引入确定性,同时由您选择的与GhostFree交互的代理运行其核心。虽然我们建议使用您能负担得起的最佳模型运行它,但这种确定性策略有助于更便宜/更弱的模型在我们的测试中使用GhostFree辅助时进行相当有效的漏洞修复。

Q: GhostFree会在任何地方上传我的代码吗?\ 不会。只有包名和版本会发送到OSV.dev。源代码不会离开您的计算机。

Q: 我需要API密钥吗?\ 不需要。OSV.dev不需要身份验证。NVD富集在没有密钥的情况下工作(速率限制为5个请求/30s),在典型的人类使用此工具时,您不太可能碰到密钥(不过,您会开始看到是否在某些自主代理设置中运行)。设置env变量 NVD_API_KEY 有关更高的限制(请参见 nist.gov 网站了解更多详情)。

Q: 如果我离线怎么办?\ 扫描需要OSV.dev访问权限。如果无法访问,NVD和KEV富集将优雅地降级并发出警告。

Q: 它是否扫描传递依赖关系?\ 部分。当存在锁文件时,GhostFree会扫描完整解析的依赖关系图(直接+传递): package-lock.json 对于Node.js, Cargo.lock 对于Rust, go.sum 对于Go,以及 Pipfile.lock 对于Python。对于不支持锁文件的生态系统(Java、.NET),只扫描直接声明的依赖关系。

Q: 扫描发现了一个我已经修复的CVE。我该怎么办?\ 更新清单中的软件包版本。在下次扫描时,它将不再出现。

______________________________________________________________________

支持

对于bug和功能请求,请在GitHub上打开一个问题。

______________________________________________________________________

隐私政策

GhostFree在您的计算机上本地处理存储库的依赖项清单。以下是数据离开机器的确切内容及其去向:

发送数据目的地目的
包名称和版本OSV.dev (谷歌)CVE查找
CVE IDNVD API (NIST/美国政府)CVSS评分和CWE富集
CVE IDCISA-KEV (美国政府)已知的开采状况

我们从未将任何类型的源代码、文件内容、存储库名称、用户标识符或遥测数据编码为发送到任何地方。 与任何人工智能辅助工具交互时一样,您的底层环境、人工智能模型、代理、IDE等在选择如何与我们的代码和您的代码交互方面超出了我们的控制范围。任何使用此工具的人都应该熟悉我们包含的信息 LICENSE.txt (麻省理工学院)。

GhostFree不收集、存储或共享任何数据。所有处理都在本地进行。已接受风险文件(.ghostfree/accepted.yml)留在您的存储库中,由您控制。

如有疑问,请在GitHub上发布问题。

______________________________________________________________________

致谢

GhostFree完全建立在三个组织的肩上,这三个组织已经向世界各地报告CVE的所有漏洞研究人员免费提供了他们的漏洞情报。没有他们,这个工具就不会存在。

谷歌开源安全团队——开源漏洞(OSV)\ OSV.dev是每个GhostFree扫描的支柱。它提供了一个免费、开放的API,用于按包名称和版本查询所有主要包生态系统中的已知漏洞,并在单个响应中包括严重性分数和修复版本数据。其慷慨的速率限制和零身份验证设计使其成为在每个开发人员的机器上本地运行的工具的理想选择。

美国国家标准与技术研究所-国家漏洞数据库(NVD)\ NIST在美国商务部内维护的国家漏洞数据库是每个已发布CVE的标准化CVSS严重性向量和CWE分类的权威来源。GhostFree在per-CVE分类期间调用NVD API 2.0,以揭示开发人员做出知情补救决定所需的全部技术细节。

美国网络安全和基础设施安全局-已知漏洞(KEV)\ CISA是美国国土安全部的一部分,负责发布和维护已知漏洞目录,这是一份经过精心策划的已确认在野外被积极利用的CVE列表。GhostFree下载并使用此目录来回答一个最能改变团队行动紧急程度的问题: *这现在被利用了吗?*

______________________________________________________________________

我们的目标是让这些组织产生的安全情报尽可能地被每个开发人员访问,无论他们在哪里工作,这些情报是由大量公共开支收集的,并为了更安全的互联网而自由共享。追逐这些漏洞的坏人不会睡觉。数据也没有。

目录标签

目录标签

漏洞扫描TypeScriptCursor本地部署依赖管理代码安全CVE检测风险治理

支持客户端

Cursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP