
Tribell Edge Sandbox Escape - PoCs der Legacy-Schwachstellen von Edge BadgeUpdateManager / TileFlyoutUpdateManager / ToastNotificationManager zur Ausnutzung von grenzüberschreitendem XmlDocument-Sharing und zum Ausbrechen aus Edge’s LPAC-Sandbox (CVE-2019-0555).
Tribell Edge Sandbox Escape - PoCs der veralteten Edge-Sicherheitslücken BadgeUpdateManager / TileFlyoutUpdateManager / ToastNotificationManager zur Ausnutzung der grenzüberschreitenden XmlDocument-Freigabe und zur Umgehung der Edge LPAC-Sandbox (CVE-2019-0555).
Die PoCs lösen die Ausführung von notepad.exe innerhalb des Just-In-Time (JIT)-Kompilierungsprozesses aus.
Eine Reihe von Partial Trust Windows Runtime-Klassen legen die XmlDocument-Klasse prozessübergreifend für weniger berechtigte Aufrufer offen, was in seiner ursprünglichen Form missbraucht werden konnte, um Berechtigungen zu erweitern und die Edge Content LPAC-Sandbox zu umgehen.
Dieser PoC verwendet BadgeUpdateManager, TileFlyoutUpdateManager und ToastNotificationManager, um die grenzüberschreitende Offenlegung von XmlDocument zu reproduzieren und die Sandbox-Umgehung zu erreichen. Die Sicherheitslücke wurde von Microsoft gepatcht und funktioniert auf vollständig aktualisierten Systemen nicht mehr.
Beim Entwickeln des Exploit-Codes wurde der folgende C++-Code geschrieben und kompiliert, um zu untersuchen, wie jede Klasse verwendet wird, und anschließend wurden GUID-Werte und Offsets in IDA untersucht.
...
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));
...