I dettagli di un difetto di sicurezza in Windows 10 S sono stati rivelati dal Project Zero di Google dopo che Microsoft non ha emesso una patch entro la scadenza di divulgazione di 90 giorni.

La “vulnerabilità WDDP CLSID .NET COM Instantiation UMCI Bypass” è descritta come di media severità e consente l’esecuzione di codice arbitrario su sistemi con Device Guard abilitato.

Che il problema riguardi Windows 10 S è qualcosa di imbarazzante per Microsoft; questa particolare versione del suo sistema operativo è definita “snella per sicurezza e prestazioni superiori”.

Inizialmente è stato segnalato a Microsoft a gennaio, e dopo aver indicato che non avrebbe o non potuto essere risolto nel Patch Tuesday di aprile, Microsoft ha chiesto un’estensione di 14 giorni, ma questo è stato negato. La società ha chiesto ancora una volta un’estensione, rilevando che Redstone 4 risolverà il problema, ma Project Zero ha sottolineato che questa “non sarebbe considerata una patch ampiamente disponibile per le condizioni di divulgazione”, da cui la divulgazione.

La voce di Project Zero per il difetto di sicurezza spiega il problema:

La politica di blocco della classe COM WLDP contiene un elenco di oggetti COM da 8 a 50 che possono essere istanziati dai motori di script illuminati. Esclusi i problemi relativi alla ricerca del CLSID corretto (come l’abuso segnalato in precedenza del caso TreatAs 40189). Questo non dovrebbe essere un grosso problema anche se è possibile scrivere nel registro per registrare una DLL esistente con uno dei CLSID COM consentiti poiché un’implementazione COM ben condotta dovrebbe confrontare il CLSID passato a DllGetObject con il suo elenco interno di oggetti noti.

Si scopre che .NET non è una di queste implementazioni COM ben educate. Quando viene creato un oggetto COM .NET, il CLSID passato a DllGetClassObject di mscoree viene utilizzato solo per cercare le informazioni di registrazione in HKCR. A questo punto, almeno in base al test, il CLSID viene gettato via e viene creato l’oggetto .NET. Ciò ha un impatto diretto sulla politica di classe in quanto consente a un utente malintenzionato di aggiungere chiavi del Registro di sistema (incluso HKCU) che caricare una classe COM visibile arbitraria sotto uno dei CLSID consentiti. Poiché .NET non si preoccupa quindi se il tipo .NET abbia quel GUID specifico, è possibile utilizzarlo per eseguire l’avvio dell’esecuzione di codice arbitrario abusando di qualcosa come DotNetToJScript (https://github.com/tyranid/DotNetToJScript).

È disponibile una dimostrazione del concetto, ma esistono fattori attenuanti. Come lo scopritore – un utente chiamato Forshaw – spiega: “Non è un problema che può essere sfruttato da remoto, né è un escalation di privilegi. Un utente malintenzionato dovrebbe già avere il codice in esecuzione sulla macchina per installare le voci di registro necessarie per sfruttare questo problema, anche se questo potrebbe essere attraverso un RCE come una vulnerabilità in Edge “.

Lascia una recensione

Please Login to comment
avatar
  Subscribe  
Notificami