kennedy-aikohi/mcpjam-cve-2026-23744-validator

GitHub: kennedy-aikohi/mcpjam-cve-2026-23744-validator

CVE-2026-23744 的授权非破坏性 PoC 验证工具,用于确认 MCPJam Inspector 1.4.2 及更早版本是否存在未授权远程命令执行漏洞。

Stars: 0 | Forks: 0

# MCPJam Inspector 授权安全验证程序 这是一个用于针对受影响的 MCPJam Inspector 部署验证 **CVE-2026-23744** 的有限概念验证(PoC)验证程序。 本项目是一个针对先前已披露的 CVE-2026-23744 的独立、非破坏性验证工具。它不是原始的漏洞披露或漏洞利用程序。 本仓库专供安全专业人员用于验证其拥有或获得明确书面授权进行评估的系统。 ## 重要提示 该验证程序通过使目标 MCPJam Inspector 进程执行固定的、非交互式的取证命令来确认漏洞暴露情况。它不提供通用的漏洞利用框架、shell、后渗透工作流、持久化机制、凭据访问例程或提权功能。 仅对你拥有或获得明确书面测试授权的资产运行此工具。未经授权的测试可能会违反法律、合同、可接受使用策略或交战规则。 ## 漏洞概述 * **CVE:** CVE-2026-23744 * **公告:** GHSA-232v-j27c-5pp6 * **受影响产品:** MCPJam Inspector * **受影响版本:** 1.4.2 及更早版本 * **修复版本:** 1.4.3 * **漏洞类别:** 未授权的远程命令执行 * **受影响端点:** `/api/mcp/connect` * **影响:** 远程未经身份验证的攻击者可能能够使受影响的 MCPJam Inspector 服务启动由攻击者控制的 MCP 服务器进程。 ## 目的 本仓库的目的是为授权的安全评估提供安全、有限且可审计的验证工作流。 它旨在帮助防御者、资产所有者、顾问和内部安全团队确定特定的 MCPJam Inspector 部署是否仍然容易受到 CVE-2026-23744 的攻击,而不会执行不必要的破坏性操作或收集敏感数据。 ## 安全特性 此验证程序受到有意限制: * 需要操作员提供目标。 * 在运行前需要 `--authorized` 确认。 * 仅执行固定的、非破坏性的取证命令。 * 不接受来自 CLI 的任意操作系统命令。 * 不建立交互式 shell。 * 不访问凭据。 * 不读取敏感应用数据。 * 不创建持久化。 * 不尝试提权。 * 不尝试横向移动。 * 限制返回的证据数量,以减少意外的数据泄露。 * 在验证后删除临时的 MCP 会话。 * 生成适合评估记录的结构化 JSON 输出。 * 不包含任何客户、实验室、凭据或特定目标的数据。 ## 验证程序的功能 在宏观层面上,验证程序会: 1. 检查操作员是否提供了所需的授权标志。 2. 连接到目标 MCPJam Inspector 端点。 3. 尝试使用固定的本地响应器创建临时的 MCP 服务器会话。 4. 请求从该临时会话执行固定的取证命令。 5. 捕获目标服务返回的有限证据。 6. 删除临时的 MCP 会话。 7. 打印或写入结构化的 JSON 评估结果。 取证命令被有意限制为仅获取基本的运行时上下文,如身份标识、主机名、工作目录和内核信息。其唯一目的是证明在 MCPJam Inspector 服务账户下执行了代码。 ## 验证程序不会做的事 此工具不会: * 向操作员提供任意命令执行权限。 * 提供反向 shell 或绑定 shell。 * 下载或执行外部 payload。 * 从目标读取文件。 * 转储环境变量。 * 收集 token、机密信息、cookie、SSH 密钥或凭据。 * 修改系统配置。 * 安装软件。 * 创建用户。 * 更改权限。 * 尝试提权。 * 尝试持久化。 * 尝试横向移动。 * 尝试数据窃取。 ## 要求 * 评估工作站上需安装 Python 3.9 或更高版本。 * 从评估工作站到 MCPJam Inspector 服务的网络访问权限。 * 测试目标系统的授权。 * 目标端的 MCP 服务器执行环境必须支持验证程序所使用的命令。 该验证程序专为授权的评估环境设计,应从受信任的管理工作站执行。 ## 安装 克隆仓库: ``` git clone https://github.com/kennedy-aikohi/mcpjam-cve-2026-23744-validator.git cd mcpjam-cve-2026-23744-validator ``` 不需要第三方 Python 依赖。 ## 用法 基本验证: ``` python mcpjam_authorized_validator.py \ --target http://inspector.example.internal:6274 \ --authorized ``` 将 JSON 报告写入磁盘: ``` python mcpjam_authorized_validator.py \ --target http://inspector.example.internal:6274 \ --authorized \ --output assessment-result.json ``` 目标格式示例: ``` http://127.0.0.1:6274 http://inspector.example.internal:6274 https://inspector.example.internal ``` ## 必需的授权标志 该设计要求使用 `--authorized` 标志。 示例: ``` python mcpjam_authorized_validator.py --target http://127.0.0.1:6274 --authorized ``` 如果没有此标志,验证程序将退出且不运行评估。 这是一种有意的保障措施,旨在确保操作员明确承认他们已被授权测试该目标。 ## 退出代码 验证程序使用的退出代码对 CI 流水线和自动化安全检查非常有用: | 退出代码 | 含义 | | --------- | ---------------------------------------------------------------------- | | `0` | 漏洞未被验证 | | `1` | 漏洞已验证 | | `2` | 参数无效、缺少授权确认或使用错误 | 返回代码 `1` 并不意味着验证程序崩溃。它意味着目标似乎存在漏洞,应将该结果视为一项安全发现。 ## 输出格式 验证程序返回类似于以下内容的结构化 JSON: ``` { "timestamp_utc": "2026-06-09T13:00:00Z", "target": "http://inspector.example.internal:6274", "endpoint": "/api/mcp/connect", "authorized": true, "vulnerable": true, "http_status": 200, "evidence": { "identity": "uid=1000(mcpjam) gid=1000(mcpjam)", "hostname": "inspector-host", "working_directory": "/app", "kernel": "Linux 6.x" }, "error": null } ``` 具体字段可能会因目标行为、网络条件和服务响应而异。 ## 解读结果 ### 存在漏洞的结果 存在漏洞的结果意味着未经授权的 MCP 连接端点启动了验证程序的固定进程并返回了证据。 请将此视为在 MCPJam Inspector 服务账户下发生的远程代码执行。 建议的响应措施: 1. 将 JSON 输出记录为评估证据。 2. 确认暴露服务的所有者和业务背景。 3. 如果服务可从不受信任的网络访问,请立即限制对该服务的访问。 4. 将 MCPJam Inspector 升级到已修复的版本。 5. 检查服务日志中对 `/api/mcp/connect` 的意外请求。 6. 审查服务账户权限。 7. 如果有理由认为服务账户有权访问敏感材料,请轮换机密信息。 ### 无漏洞结果 无漏洞的结果意味着验证程序未确认执行。 这可能表明: * 目标已修补。 * 目标不是 MCPJam Inspector。 * 端点不可达。 * 服务受到网络控制保护。 * 服务行为与易受攻击的版本不同。 * 目标环境不支持验证程序的固定响应器。 无漏洞的结果本身不应被视为完整的安全评估。请单独确认版本、暴露情况、身份验证要求和网络访问控制。 ## 操作指南 在运行验证程序之前: 1. 确认书面授权。 2. 确认目标主机名、IP 地址和端口。 3. 确认测试时间窗口和交战规则。 4. 确认服务是生产、测试还是实验室基础设施。 5. 如果参与流程有要求,请通知利益相关者。 运行验证程序之后: 1. 保存 JSON 输出。 2. 捕获所使用的确切命令。 3. 以 UTC 时间记录评估时间戳。 4. 记录用于验证的源 IP 地址。 5. 保留相关的服务日志。 6. 记录补救措施和所有者分配情况。 ## 推荐报告用语 如果验证程序确认存在漏洞暴露,发现结果可描述如下: ``` The MCPJam Inspector service was confirmed vulnerable to CVE-2026-23744. During authorized validation, the unauthenticated /api/mcp/connect endpoint caused the service to launch a fixed, non-destructive evidence command and return runtime context. This confirms remote code execution under the MCPJam Inspector service account. No privilege escalation, credential access, persistence, lateral movement, or sensitive data access was attempted. ``` ## 补救措施 建议的补救步骤: 1. 将 MCPJam Inspector 升级到 1.4.3 或更高版本。 2. 移除对 Inspector 服务的公共或不受信任网络的访问。 3. 将管理工具绑定到 `127.0.0.1` 或受信任的管理接口。 4. 在执行进程启动操作之前要求进行身份验证和授权。 5. 将服务置于受信任的 VPN、堡垒机或管理网络之后。 6. 在主机防火墙、安全组和网络 ACL 层限制入站访问。 7. 审查服务账户权限并尽可能降低权限。 8. 如果服务账户有权访问敏感材料,请轮换可能暴露的机密。 9. 检查日志中对 `/api/mcp/connect` 的意外请求。 10. 监控由 MCPJam Inspector 服务生成的可疑子进程。 ## 检测建议 防御者可以审查以下遥测源: * 对 `/api/mcp/connect` 发出请求的 HTTP 访问日志。 * 来自 MCPJam Inspector 主机的进程创建日志。 * 由 Inspector 服务生成的意外子进程。 * 从 Inspector 主机到不受信任目标的网络连接。 * 新的或异常的 MCP 服务器会话。 * 管理服务在 `0.0.0.0` 上的暴露。 * 显示从不受信任网络访问 Inspector 端口的防火墙日志。 检测逻辑示例: ``` Look for unauthenticated or unexpected requests to /api/mcp/connect followed by new child processes spawned by the MCPJam Inspector service account. ``` ## 限制 此验证程序受到有意限制,不应将其视为完整的安全扫描器。 已知限制: * 它仅验证一类漏洞。 * 它不执行将版本指纹识别作为唯一事实来源的操作。 * 它不测试后渗透影响。 * 它不验证每一种可能的 MCPJam Inspector 部署配置。 * 如果网络控制、服务行为、运行时环境或响应格式化阻止了证据收集,它可能会返回假阴性。 * 如果目标端执行环境缺少预期的解释器或运行时行为,它可能会失败。 * 它不能替代补丁验证、日志审查或配置审查。 ## 安全设计说明 此验证程序被设计为可审计且受限的。 重要的实施选择: * 操作员无法提供任意命令。 * 取证命令在源代码中是固定的。 * 返回的证据数量有上限。 * 该工具需要明确的授权确认。 * 验证后会尝试进行临时的 MCP 会话清理。 * JSON 输出支持可重复的评估记录。 * 对 CI 友好的退出代码允许防御者在确认暴露时中断构建或检查。 ## 负责任的使用 仅对你拥有或获得明确测试授权的资产使用此工具。 用户有责任遵守适用的法律、合同、内部政策和交战规则。 请勿将此工具用于未经授权的测试、全网扫描、凭据访问、持久化、提权、数据窃取或破坏活动。 ## 版权归属 本仓库是一个独立的授权验证项目。 它不是原始的漏洞披露、供应商公告或漏洞利用发布。 主要参考: * GitHub 安全公告: * NVD CVE 记录: * GitHub 公告数据库: ## 许可证 本项目在本仓库包含的许可证下发布。 ## 维护者说明 建议的仓库维护规范: * 保持验证程序的非破坏性。 * 不要添加任意命令执行标志。 * 不要添加反向 shell 功能。 * 不要添加凭据访问功能。 * 不要在示例中包含真实目标数据。 * 保持评估输出在有界范围内。 * 在 README 和 CLI 帮助中保持授权用语可见。 * 保留对原始公告和 NVD 记录的引用。
标签:Maven, MCP, POC, 漏洞验证, 远程命令执行, 逆向工具