mcp-atlassian 中的两个严重漏洞,该服务器是生态系统中广受欢迎的 MCP 服务器之一(GitHub 星标 4.4K+,下载量 400 万+)。
由 Pluto Security 团队发现。
| CVE | CVSS | 类型 | 描述 |
|---|
| CVE-2026-27825 | 9.1 严重 | 任意文件写入 / RCE | 附件下载中的路径遍历漏洞,允许向主机文件系统写入任意文件 |
| CVE-2026-27826 | 8.2 高危 | 通过 Header 注入实现 SSRF | 未经验证的 URL 请求头使攻击者可将 MCP 服务器用作访问内部网络的代理 |
受影响版本: < 0.17.0 且使用 HTTP 传输(streamable-http 或 sse)
修复版本: v0.17.0
当 mcp-atlassian 以 HTTP 传输方式运行时,它会绑定到 0.0.0.0(所有网络接口)且无任何身份验证。同一网络上的任何设备——共享办公 WiFi、联合办公空间、云 VPC——都可以在无需凭据的情况下调用其 40 多个工具中的任意一个。
CVE-2026-27825 允许攻击者向主机写入任意文件:将反向 Shell 植入 ~/.bashrc、向 ~/.ssh/authorized_keys 添加 SSH 密钥,或植入 cron 任务——从而实现完全远程代码执行。
CVE-2026-27826 将 MCP 服务器变成 SSRF 代理:攻击者可以访问云元数据端点(169.254.169.254)、扫描内部服务并绘制受害者的网络拓扑——全部通过受害者自己的机器完成。
使用更新脚本扫描您的系统:
# 下载脚本或克隆本仓库
# 检查是否受影响(只读,不做任何更改)
./update-mcp-atlassian.sh --check-only
# 同时扫描 MCP 客户端配置(Claude Desktop、Cursor、VS Code)
./update-mcp-atlassian.sh --check-only --scan
| 方法 | 检测内容 |
|---|---|
| pip / pip3 | 通过 pip show 检测系统或虚拟环境安装 |
| uv tool | 通过 uv tool install 安装的工具 |
| 源码检出 | 在 ~ 中搜索引用 mcp-atlassian 的 pyproject.toml 文件 |
| 虚拟环境 | 在 ~ 中搜索 site-packages/mcp_atlassian 目录 |
| Docker 镜像 | 匹配 mcp-atlassian 的镜像 |
| MCP 客户端配置 | (使用 --scan)Claude Desktop、Cursor、VS Code、Claude Code 设置 |
=== mcp-atlassian 安全更新检查 ===
CVE-2026-27825 (CVSS 9.1) + CVE-2026-27826 (CVSS 8.2)
安全版本:>= 0.17.0
--- 正在扫描 mcp-atlassian 安装 ---
[!!] pip: 0.16.1 (存在漏洞) -- /usr/local/lib/python3.12/site-packages
[OK] uv-tool: 0.17.0 (安全) -- uv tool install
找到 2 个安装:1 个存在漏洞,1 个安全,0 个未知
发现 1 个存在漏洞的安装。
不带 --check-only 运行以进行升级。
--check-only 仅扫描,不做任何更改(建议首次运行)
--scan 同时检查 MCP 客户端配置中是否有 mcp-atlassian 引用,
并标记危险的传输设置(0.0.0.0、HTTP 传输)
-h, --help 显示帮助
# 扫描并升级存在漏洞的安装
./update-mcp-atlassian.sh
该脚本会自动升级 pip、pip3、uv tool 和虚拟环境安装。对于源码检出和 Docker 镜像,它会打印手动操作说明。
| 方法 | 命令 |
|---|---|
| pip | pip install --upgrade "mcp-atlassian>=0.17.0" |
| uv tool | uv tool upgrade mcp-atlassian |
| 源码 | cd mcp-atlassian && git pull && uv sync |
| Docker | docker pull ghcr.io/sooperset/mcp-atlassian:latest |
如需完整的技术分析,包括漏洞代码路径、利用流程、真实攻击场景以及修复原理,请参阅博客文章。
confluence/attachments.py 中的 download_attachment() 方法接受用户提供的 target_path 并在没有任何路径验证的情况下写入:
# v0.16.1 — 无路径遍历检查
os.makedirs(os.path.dirname(target_path), exist_ok=True)
with open(target_path, "wb") as f: # 写入任意路径
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
已在 PR #987 中修复,通过添加 validate_safe_path() — 解析符号链接、规范化路径、强制基础目录包含。
servers/main.py 中的中间件信任 X-Atlassian-Jira-Url / X-Atlassian-Confluence-Url 请求头且不进行验证,允许攻击者将服务器的出站请求重定向到任意 URL。
已在 PR #986 中修复,通过添加 validate_url_for_ssrf() — 协议白名单、私网 IP 拦截、DNS 解析检查、重定向验证。
update-mcp-atlassian.sh 扫描与升级脚本(macOS / Linux)
README.md 本文件
-xdev 避免遍历网络挂载点--check-only 完全只读Apache 2.0