
Documentazione tecnica e analisi di CVE-2022-30292, un heap-based buffer overflow in Squirrel 3.2 che porta a negazione del servizio, fuga dalla sandbox ed esecuzione di codice arbitrario tramite bytecode o file sorgente appositamente predisposti.
Questa vulnerabilità è un overflow del buffer basato su heap nella funzione thread_call in Squirrel 3.2 e versioni precedenti. È causata dalla mancanza della chiamata alla funzione sq_reservestack. Questa vulnerabilità porta a un DoS del client e potrebbe potenzialmente portare a un'evasione dalla sandbox e all'esecuzione di codice arbitrario.
Per sfruttare la vulnerabilità, qualcuno deve eseguire bytecode o file sorgente Squirrel appositamente creati. Ciò può essere realizzato in diversi modi. Ad esempio, un server invia la mappa di gioco al client e quest'ultimo esegue lo script Squirrel malevolo. Un altro modo per essere attaccati è installare una mod di gioco malevola sul proprio server.
Esiste la correzione in questo commit per questa vulnerabilità. Per applicare la correzione, è necessario ricompilare il progetto dai sorgenti a partire da questo commit.
Ci sono molti giochi che usano Squirrel come linguaggio di scripting principale. Gli sviluppatori di questi giochi devono applicare la correzione il prima possibile.
Non forniremo la PoC prima di 90 giorni dalla data di pubblicazione della correzione. Forse la forniremo in seguito.