Prefab UI 生成式 UI 沙箱可逃逸至宿主机,0.21.0 已收回 Deno 权限
11 月 1 日公开的 CVE-2026-120338 指出,Prefab UI 0.14.0 至 0.20.2 的可选生成式 UI 沙箱虽在 Pyodide 中运行模型或调用方提供的 Python,却把具备读、写和联网权限的 Deno API 留在 JavaScript 全局对象上。攻击代码可借 Pyodide 的 js 代理读取或写入宿主文件,并可写入虚拟环境的 .pth 文件形成持久执行。0.21.0 在接收生成代码前撤销读写和网络权限,并以 --no-prompt 阻止重新授权。
为什么值得关注
这是“在浏览器技术或 WebAssembly 中执行”并不等于隔离的直接反例。生成式 UI 若允许模型产出代码,真实安全边界取决于宿主进程权限、工具授权、网络暴露和执行前后的权限撤销。
技术细节
GitHub Advisory Database 将该问题列为 Critical,给出 CVSS 3.1 10.0;常见远程路径是 FastMCP GenerativeUI provider 的 generate_prefab_ui 工具将 code 参数送入沙箱。未配置认证时,可到达服务器的客户端即可调用;有认证时,具备该工具权限的客户端仍可触发。漏洞在 0.20.2 上得到确认。修复 PR #538 于 10 月 25 日合并并进入 10 月 26 日发布的 0.21.0:引导阶段仅允许访问 cdn.jsdelivr.net,加载运行时和 Prefab 源后撤销 Deno 文件与网络权限,并禁用交互式权限提示。
适合哪些读者
运行 Prefab UI、FastMCP GenerativeUI 或任何允许模型代码进入 Pyodide/Deno 执行路径的平台、安全与基础设施团队。
原始来源
- GitHub Advisory Database, Prefab release and fix pull request ↗github.com
- Prefab sandbox permission fix PR ↗github.com
- Prefab UI 0.21.0 release ↗github.com
修订与更正记录 (1)
— A newly discovered, evidence-complete critical vulnerability directly affects optional generative-UI code execution; the advisory, affected range, exploit path and upstream fix are documented.