CVE-2026-120338
Last modified
CVE-2026-120338 is a critical-severity vulnerability rated 10/10 on the CVSS scale. Prefab UI's Generative UI sandbox runs caller-supplied Python inside Pyodide, Python compiled to WebAssembly, in a Deno subprocess. The feature is documented as isolation for untrusted code, including LLM-written UI.
Description
Prefab UI's Generative UI sandbox runs caller-supplied Python inside Pyodide, Python compiled to WebAssembly, in a Deno subprocess. The feature is documented as isolation for untrusted code, including LLM-written UI. From prefab-ui 0.14.0 through 0.20.2 the launcher starts Deno with unrestricted --allow-read, --allow-write, and --allow-net, and the runner leaves the Deno API on the JavaScript global object. Pyodide's js module proxies that global, so the Python can call Deno.readTextFileSync and Deno.writeTextFileSync. A caller who can supply the code can read and write files as the server OS user, and can persist code execution by writing a .pth file into the server virtualenv's site-packages. The usual remote path is FastMCP's GenerativeUI provider, which registers the MCP tool generate_prefab_ui and forwards that tool's code argument into this sandbox. On a FastMCP server with no authentication configured, any client who can reach the server can call the tool. With authentication, any client allowed to call tools can. Generative UI is opt-in, and the host must have Deno installed. Confirmed on prefab-ui 0.20.2. Fixed in 0.21.0: after the runtime and Prefab sources load, the runner revokes Deno read, write, and network permission before it accepts code, the process is started with --no-prompt so a permission request cannot grant them again, and bootstrap network access is limited to cdn.jsdelivr.net. The fix is commit 030f074 (pull request 538).
Metrics
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| PrefectHQ | prefab-ui | >= 0.14.0, < 0.21.0 |
References
Timeline
- Published
- Last Modified
- Status
- Received
Frequently Asked Questions
What is CVE-2026-120338?
How severe is CVE-2026-120338?
How do I fix CVE-2026-120338?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-120306Beta9 turns each shell command in a tenant image definition …9.9
- CVE-2026-120307The Beta9 worker serves the sandbox file API from outside th…9.9
- CVE-2026-120308A Beta9 tenant can attach a volume when deploying a function…9.9
- CVE-2026-12031Inappropriate implementation in Views in Google Chrome on Wi…8.3
- CVE-2026-12032Inappropriate implementation in Passwords in Google Chrome o…3.1
- CVE-2026-12033Out of bounds read in VideoCapture in Google Chrome prior to…5.3
- CVE-2026-12034Insufficient validation of untrusted input in Linux Toolkit …8.3
- CVE-2026-12035Use after free in Views in Google Chrome on Windows prior to…8.8
- CVE-2026-12036An improper link following vulnerability was reported in the…7.1
- CVE-2026-12037The Asset CleanUp: Page Speed Booster plugin for WordPress i…5.5
- CVE-2026-12038Rejected reason: ** REJECT ** DO NOT USE THIS CANDIDATE NUMB…
- CVE-2026-12039Docker Sandboxes (sbx) enforces an HTTP/S-only egress allowl…5.7
Are you affected by CVE-2026-120338?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
