È stata scoperta una vulnerabilità (CVE-2025-47154) nel motore JavaScript LibJS, utilizzato nel browser web Ladybird, che consente l'esecuzione di codice arbitrario nel sistema durante l'elaborazione di codice JavaScript appositamente concepito. La vulnerabilità è causata dal rilascio della memoria nel vettore m_argument_values_buffer, al quale rimaneva un puntatore nella struttura arguments_list, portando a un accesso a un'area di memoria già liberata. È disponibile un prototipo funzionante dell'exploit.
Il ricercatore che ha identificato il problema ha eseguito un test di fuzzing su LibJS, durante il quale sono stati registrati 10 crash. L'analisi di uno dei guasti ha rivelato che il problema può essere sfruttato durante l'elaborazione del codice JavaScript. La vulnerabilità permetteva di leggere e scrivere in aree di memoria arbitrarie del processo. L'esecuzione del codice è stata organizzata nell'exploit attraverso la sostituzione del puntatore di ritorno dalla funzione di rendering. Utilizzando la Programmazione Orientata al Ritorno (ROP), è stata formata una catena per eseguire la chiamata di sistema execve per avviare un'applicazione esterna.
Il browser Ladybird è sviluppato da Andreas Kling, che ha precedentemente lavorato in Nokia occupandosi dello sviluppo di KHTML, e successivamente è stato uno dei programmatori di Safari presso Apple. Attualmente, Ladybird è nella fase di pre-alpha, utilizzabile solo da sviluppatori. Inizialmente, il progetto è stato creato come applicazione per il sistema operativo SerenityOS, ma l'estate scorsa è stato separato in un progetto indipendente e ha ricevuto una donazione di 1 milione di dollari. Il browser è scritto in C++ (è stato deciso di passare a Swift) e viene distribuito con licenza BSD. Il progetto include un motore proprietario, LibWeb, l'interprete JavaScript LibJS e librerie correlate.
Fonte: opennet.ru
