Skip to main content

Prefab UI 0.21 Fixes CVSS 10.0 Sandbox File Read/Write Vulnerability

JFrog discloses a critical CVSS 10.0 vulnerability in Prefab UI versions 0.14.0-0.20.2, allowing host file read and write. Upgrade to 0.21.0 immediately.

AI-written
Inewgen
02 Nov 2026Source: Dev.to3 min read (0 views)
Share
Prefab UI 0.21 Fixes CVSS 10.0 Sandbox File Read/Write Vulnerability

Stock photo for illustration only, not from the actual event

Font size
  • Prefab UI versions 0.14.0 through 0.20.2 contain a critical CVSS 10.0 vulnerability.
  • Code inside the sandbox could read and write files directly on the host server.
  • The flaw stemmed from unrestricted Deno permissions and exposed API via Pyodide.
  • Patches are available in versions 0.21.0 and 0.21.1, and administrators should update immediately.

On November 1, JFrog Security Research published vulnerability report CVE-2026-120338 targeting Prefab UI, the generative UI framework from PrefectHQ. The GitHub advisory rates the vulnerability at a maximum CVSS score of 10.0. Across versions 0.14.0 through 0.20.2, callers able to submit code to the Generative UI sandbox could read and write files on the host machine.

A fix was already shipped prior to public disclosure. Prefab-ui 0.21.0 was released on October 26—six days before the CVE went public—followed by version 0.21.1 on the same day. If you run FastMCP with Generative UI enabled, verifying this component should be at the top of your checklist.

This vulnerability highlights the classic challenges of building secure sandboxes for AI-generated code. Even when theoretical isolation layers are present—such as running Pyodide (Python compiled to WebAssembly) inside a Deno subprocess—unrestricted baseline permissions and internal API bridges can completely bypass these virtual barriers if not configured carefully.

Prefab's Generative UI executes caller-supplied Python code inside Pyodide, which runs within a Deno subprocess. On paper, this provides two layers of isolation. However, JFrog highlighted two configuration choices that neutralized both barriers:

  • The launcher started Deno with unrestricted --allow-read, --allow-write, and --allow-net permissions.
  • The runner left the Deno API exposed on the JavaScript global object, allowing Python code to invoke js.Deno.readTextFileSync and js.Deno.writeTextFileSync directly on the host.
server room digital data center technology security

Stock photo for illustration only, not from the actual event

While reading files is damaging, writing them is significantly worse. In version 0.20.2, JFrog leveraged the write capability to plant a .pth file inside the server virtualenv's site-packages directory. Consequently, any subsequent Python process utilizing that environment executed the planted import automatically outside any sandbox boundaries, exploiting a long-standing Python feature where .pth files starting with import lines are executed via exec() during interpreter startup.

Never miss the latest news?

Subscribe to get news summaries by email - not often enough to be annoying.

โฆษณา

"bootstrap filesystem/network permissions are revoked before generated code executes."

PR #538 Fix Description

To inspect and remediate affected environments, administrators can run standard shell commands to verify versions and upgrade packages:

  • Run python -m pip show prefab-ui to check the installed version.
  • Search for GenerativeUI registrations using grep -rn "GenerativeUI" --include="*.py" .
  • Upgrade to the latest package version using python -m pip install --upgrade "prefab-ui>=0.21.0"

Source: Dev.to

Comments

Leave a Comment
0/2000

Found something wrong in this article? Report an issue with this article