Google ha rilevato privatamente a novembre una falla trovata in Microsoft Edge (browser considerato come più veloce e sicuro progettato per Windows 10) recentemente comunicata, in quanto la Microsoft ha sforato i 90 giorni che le erano stati dati per risolvere il problema.
Microsoft è stata costretta a spostare le funzionalità di compilazione JIT (just in time) dell’engine JavaScript Chakra in un processo separato eseguito in una sandbox isolata per poter usare Arbitrary Code Guard in Microsoft Edge con l’aggiornamento Windows 10 Creators Update, allo scopo di mitigare le possibilità di esecuzione di codice arbitrario. Il processo JIT ha il compito di compilare JavaScript in codice nativo, con la creazione di uno shared map object che viene mappato al content process e riservando una porzione di memoria. Quando le pagine devono essere scritte in memoria, JIT effettua una chiamata alla funzione VirtualAllocEx() per allocare la memoria dallo spazio riservato precedentemente.
Secondo i ricercatori di Google facenti parte del progetto di sicurezza Project Zero è piuttosto facile compromettere il content process e prevedere l’indirizzo dove il processo JIT va a chiamare la funzione VirtualAllocEx() aprendo così uno scenario dove, utilizzando la funzione UnmapViewOfFile(), si può rimuovere la mappatura della memoria condivisa, allocare una regione di memoria scrivibile sullo stesso indirizzo su cui il JIT sta per scrivere e scrivere in questa regione un payload di prossima esecuzione. Nel momento in cui il processo JIT chiama la funzione VirtualAllocEx(), anche se la memoria è già allocata, la chiamata ha successo e la protezione di memoria muta su PAGE_EXECUTE_READ.
Nonostante l’estensione di 14 giorni sulla data di scadenza concessa da Google alla Microsoft, questa non è stata in grado di risolvere il problema, che si è rilevato essere piuttosto complicato da gestire. Promette, però, di inserire la patch correttiva all’interno degli aggiornamenti del Patch Tuesday che uscirà il 13 marzo.
Il CSG è a disposizione per ulteriori chiarimenti o interventi di supporto.