
Tribell Edge Sandbox Escape - PoC delle vulnerabilità legacy di Edge BadgeUpdateManager / TileFlyoutUpdateManager / ToastNotificationManager per sfruttare la condivisione di XmlDocument oltre i confini ed evadere dalla sandbox LPAC di Edge (CVE-2019-0555).
Tribell Edge Sandbox Escape - PoC delle vecchie vulnerabilità di Edge BadgeUpdateManager / TileFlyoutUpdateManager / ToastNotificationManager per sfruttare la condivisione transfrontaliera di XmlDocument e uscire dalla sandbox LPAC di Edge (CVE-2019-0555).
Le PoC attivano l'esecuzione di notepad.exe all'interno del processo di compilazione Just-In-Time (JIT).
Un certo numero di classi Windows Runtime a parziale fiducia (Partial Trust) espone la classe XmlDocument oltre i confini del processo a chiamatori con meno privilegi, che nella sua forma originale poteva essere abusata per elevare i privilegi e uscire dalla sandbox LPAC dei contenuti di Edge.
Questa PoC utilizza BadgeUpdateManager, e per riprodurre l'esposizione transfrontaliera di e ottenere la fuga dalla sandbox. La vulnerabilità è stata corretta da Microsoft e non funziona più su sistemi completamente aggiornati.
XmlDocumentDurante lo sviluppo del codice dell'exploit, ho scritto e compilato il seguente codice C++ per investigare come viene usata ciascuna classe, e poi ho esaminato i valori GUID e gli offset in IDA.
...
ComPtr<ITileFlyoutUpdateManagerStatics> manager;
HStringReference name(RuntimeClass_Windows_UI_Notifications_TileFlyoutUpdateManager);
Check(RoGetActivationFactory(name.Get(), IID_PPV_ARGS(&manager)));
ComPtr<IXmlDocument> doc;
Check(manager->GetTemplateContent(TileFlyoutTemplateType::TileFlyoutTemplateType_TileFlyoutTemplate01, doc.GetAddressOf()));
ComPtr<IXMLDOMDocument2> dom;
Check(doc.As(&dom));
...