취약점  ·  2026-11-02

Prefab UI Generative UI 샌드박스 탈출로 LLM 작성 UI 코드에서 원격 코드 실행 가능 (CVE-2026-120338)

취약점High 영향도GlobalCVE-2026-120338
Prefab UI의 Generative UI 샌드박스는 신뢰할 수 없는 호출자 제공 Python(LLM 생성 UI 포함)을 Deno 하위 프로세스에서 Pyodide(WebAssembly의 CPython)로 실행하는 격리 수단으로 문서화되어 있습니다. prefab-ui 0.14.0부터 0.20.2까지 런처는 제한 없는 --allow-read/--allow-write/--allow-net으로 Deno를 시작하고 JavaScript 전역 객체에 Deno API를 남겨둡니다. Pyodide의 js 모듈이 해당 전역을 프록시하므로 Python은 Deno.readTextFileSync/writeTextFileSync를 호출하고 네트워크 요청을 할 수 있습니다. 코드를 제공할 수 있는 호출자는 서버 OS 사용자로 파일을 읽고 쓸 수 있으며, 서버 가상환경의 site-packages에 .pth 파일을 작성하여 실행을 지속할 수 있습니다. 일반적인 원격 경로는 FastMCP의 GenerativeUI 공급자로, MCP 도구 generate_prefab_ui를 등록하고 도구의 코드 인자를 이 샌드박스로 전달합니다. 0.21.0에서 코드를 받기 전에 Deno 읽기/쓰기/네트워크 권한을 철회하고, --no-prompt로 시작하며, 부트스트랩 네트워크 액세스를 cdn.jsdelivr.net으로 제한하여 수정되었습니다. 0.20.2에서 확인되었습니다.
Pyodide/Deno 샌드박스는 신뢰할 수 없는 LLM 작성 UI 코드에 대한 문서화된 격리 경계입니다. 이를 탈출하면 에이전틱 UI 생성 도구가 원격 코드 실행 프리미티브로 전환됩니다. 인증되지 않은 FastMCP 서버에서는 서버에 연결할 수 있는 모든 클라이언트가 generate_prefab_ui를 호출하여 서버 사용자로 파일을 읽고 쓰고 지속적인 코드 실행을 설정할 수 있습니다. 이는 새로운 에이전트 실행 공격 클래스(LLM 생성 코드 샌드박스 탈출)로, 작동하는 익스플로잇과 CVSS 10.0 등급을 가집니다.
MCP 클라이언트가 FastMCP GenerativeUI 공급자의 generate_prefab_ui 도구를 공격자 제어 Python과 함께 호출합니다. 코드는 제한 없는 파일시스템/네트워크 권한과 프록시된 Deno 전역으로 시작된 Pyodide-in-Deno 하위 프로세스 내에서 실행되므로, Python은 Deno 파일 및 네트워크 API에 액세스하고 서버 OS 사용자로 파일을 쓰고 site-packages의 .pth 파일을 통해 실행을 지속할 수 있습니다.
prefab-ui 0.14.0 ~ 0.20.2 (0.21.0에서 수정됨)
prefab-ui 0.21.0으로 업그레이드하십시오 (수정 커밋 030f074 / PR 538). 이 버전은 코드를 받기 전에 Deno 읽기/쓰기/네트워크 권한을 철회하고, --no-prompt로 시작하며, 부트스트랩 네트워크 액세스를 cdn.jsdelivr.net으로 제한합니다. 업그레이드가 지연되는 경우 FastMCP 서버 인증을 구성하고 GenerativeUI 도구를 호출할 수 있는 클라이언트를 제한하십시오.
NVD — CVE-2026-120338GitHub PrefectHQ/prefab fix commit
라이브 피드에서 보기 AI 보안 및 거버넌스 관련 소식을 더 살펴보세요 — 매일 아침 업데이트.
피드 열기 →