
Tribell Edge Sandbox Escape - PoC-эксплойты для уязвимостей устаревшего Edge: BadgeUpdateManager / TileFlyoutUpdateManager / ToastNotificationManager, предназначенные для эксплуатации межграничного совместного использования XmlDocument и выхода из LPAC-песочницы Edge (CVE-2019-0555).
Tribell Edge Sandbox Escape — PoC-эксплойты для устаревших уязвимостей Edge, BadgeUpdateManager / TileFlyoutUpdateManager / ToastNotificationManager, для эксплуатации межграничного совместного использования XmlDocument и выхода из LPAC-песочницы Edge (CVE-2019-0555).
PoC запускают выполнение notepad.exe в процессе компиляции Just-In-Time (JIT).
Ряд классов Windows Runtime с частичным доверием предоставляет класс XmlDocument через границы процессов менее привилегированным вызывающим, что в исходной форме можно было использовать для повышения привилегий и выхода из LPAC-песочницы Edge Content.
Этот PoC использует BadgeUpdateManager, TileFlyoutUpdateManager и ToastNotificationManager для воспроизведения межграничного предоставления и достижения выхода из песочницы. Уязвимость исправлена Microsoft и больше не работает на полностью обновлённых системах.
XmlDocumentПри разработке кода эксплойта был написан и скомпилирован следующий C++-код для изучения того, как используется каждый класс, после чего в IDA были рассмотрены значения GUID и смещения.
...
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));
...