
Tribell Edge Sandbox Escape - PoCs das vulnerabilidades legadas do Edge BadgeUpdateManager / TileFlyoutUpdateManager / ToastNotificationManager para explorar o compartilhamento de XmlDocument entre limites e escapar da sandbox LPAC do Edge (CVE-2019-0555).
Escape da Sandbox do Tribell Edge - PoCs das vulnerabilidades legadas do Edge (BadgeUpdateManager / TileFlyoutUpdateManager / ToastNotificationManager) para explorar o compartilhamento de XmlDocument entre limites e escapar da sandbox LPAC do Edge (CVE-2019-0555).
Os PoCs acionam a execução do notepad.exe dentro do processo de compilação Just-In-Time (JIT).
Diversas classes do Windows Runtime de Confiança Parcial expõem a classe XmlDocument entre limites de processo para chamadores com menos privilégios, o que em sua forma original poderia ser abusado para elevar privilégios e escapar da sandbox LPAC do Edge Content.
Este PoC utiliza BadgeUpdateManager, TileFlyoutUpdateManager e ToastNotificationManager para reproduzir a exposição entre limites do XmlDocument e obter a fuga da sandbox. A vulnerabilidade foi corrigida pela Microsoft e não funciona mais em sistemas totalmente atualizados.
Ao desenvolver o código do exploit, escrevi e compilei o seguinte código C++ para investigar como cada classe é usada e, em seguida, examinei valores GUID e offsets no 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));
...