Vai al contenuto
AI.info

The Pulse

Prefab UI corregge una vulnerabilità critica che consentiva di evadere dalla sandbox nella versione 0.21.0

Una falla nella sandbox di Generative UI di Prefab UI consentiva al codice Python inviato di accedere ai file con i permessi dell’utente del sistema operativo del server. La scheda della vulnerabilità indica la versione 0.21.0 come corretta

Prefab UI corregge una vulnerabilità critica che consentiva di evadere dalla sandbox nella versione 0.21.0

AI.info Team · Scritto con l’IA · verificato ·

La sandbox di Prefab UI esponeva l’host

La funzione Generative UI di Prefab UI era progettata per isolare il codice non attendibile, comprese le interfacce scritte da modelli linguistici di grandi dimensioni. Ma una falla pubblicata nel GitHub Advisory Database il 1º novembre consentiva al codice Python fornito di accedere al file system del server attraverso il runtime che avrebbe dovuto contenerlo. La scheda del database classifica la vulnerabilità, CVE-2026-120338, come critica, con un punteggio CVSS di 10,0.

Il problema interessava le versioni di prefab-ui dalla 0.14.0 alla 0.20.2. La scheda del GitHub Advisory Database afferma che la funzione richiede l’attivazione di Generative UI e l’installazione di Deno; il percorso di esposizione remota passa comunemente attraverso lo strumento generate_prefab_ui di FastMCP. Su un server privo di autenticazione, qualsiasi client in grado di raggiungere quello strumento poteva inviare codice. Su un server con autenticazione, il rischio riguarda i client autorizzati a chiamare gli strumenti.

Pyodide poteva raggiungere le API dei file di Deno

La sandbox esegue Python tramite Pyodide, un runtime Python compilato in WebAssembly, all’interno di un sottoprocesso Deno. Nelle versioni interessate, Deno si avviava con permessi illimitati di lettura, scrittura e accesso alla rete, mentre le sue API rimanevano disponibili nell’oggetto globale JavaScript. Secondo la scheda del database, il bridge JavaScript di Pyodide poteva esporre quell’oggetto globale al codice Python inviato.

Questo percorso consentiva al codice di leggere e scrivere file con i permessi dell’utente del sistema operativo del server. La scheda descrive anche un modo per rendere persistente l’esecuzione, inserendo un file .pth nella directory site-packages dell’ambiente virtuale del server. Il vettore CVSS indica un attacco via rete, di bassa complessità, che non richiede privilegi né interazione dell’utente e ha un impatto elevato su riservatezza, integrità e disponibilità.

Correzione integrata prima della pubblicazione della scheda

La pull request #538 di PrefectHQ, integrata il 25 ottobre, includeva la modifica alla sandbox, giorni prima che la vulnerabilità comparisse nel GitHub Advisory Database. La patch revoca i permessi di lettura, scrittura e accesso alla rete di Deno dopo la configurazione del runtime e prima di accettare il codice generato, impedisce che le richieste di autorizzazione li ripristinino e limita l’accesso alla rete durante il bootstrap a jsDelivr. PrefectHQ ha rilasciato la versione 0.21.0 il 26 ottobre.

«Le risposte della sandbox sono correlate alle richieste e i permessi di accesso al file system e alla rete per il bootstrap vengono revocati prima che il codice generato venga eseguito.»

jlowin, autore della pull request

La sequenza temporale è importante per gli operatori: la scheda del database è comparsa quando una patch era già presente nella release, anziché precedere la correzione. L’avviso indica la 0.21.0 come corretta, ma non stabilisce se anche le versioni successive siano sicure. I team che non usano Generative UI non rientrano nelle condizioni indicate dalla scheda; per le installazioni interessate, il rischio specifico dipende dalla possibilità che un attaccante invii codice attraverso lo strumento.

Il confine dipende dai permessi del runtime

La falla non consisteva in una mancata compilazione di Python in WebAssembly da parte di Pyodide. La scheda del database punta invece ai permessi del runtime e alle API JavaScript lasciate disponibili al suo interno: il processo della sandbox aveva accesso ai file dell’host e alla rete, e il codice fornito da chi effettuava la chiamata poteva raggiungere queste funzionalità.

La correzione di Prefab UI modifica questo confine rimuovendo i permessi prima che il codice non attendibile venga eseguito. La versione 0.21.0, rilasciata il 26 ottobre, è la release corretta indicata dal GitHub Advisory Database; la scheda è stata pubblicata il 1º novembre.

Fonti

Esplora

Altri articoli