
PoC d'élévation de privilèges locale pour Windows CVE-2026-66804 utilisant le dépôt de DLL CrossDevice et l'usurpation de jeton SigmaPotato pour générer un processus SYSTEM.
Preuve de concept pour une LPE CrossDevice/FrameServer que j'ai signalée à MSRC et qui a reçu CVE-2026-66804. Elle affecte Windows 10 et Windows 11.
Windows enregistre ce serveur COM à l'échelle de la machine :
HKLM\SOFTWARE\Classes\CLSID\{E9F83CF2-E0C0-4CA7-AF01-E90C70BEF496}\InprocServer32
%PROGRAMDATA%\CrossDevice\CrossDevice.Streaming.Source.dll
Sur les installations vulnérables testées, C:\ProgramData\CrossDevice était absent et un utilisateur standard pouvait le créer. Le dépôt de la DLL enregistrée et le démarrage d'une caméra virtuelle Media Foundation ont amené FrameServer à charger la DLL en tant que NT AUTHORITY\LOCAL SERVICE dans la session 0.
Le PoC utilise ensuite le SeImpersonatePrivilege du jeton LocalService via un helper SigmaPotato intégré pour obtenir SYSTEM et ouvrir un cmd.exe ordinaire sur le bureau actif. SigmaPotato n'est que l'étape générique finale de conversion ; la défaillance de la frontière de sécurité Microsoft démontrée ici est le chargement préalable, contrôlé par l'attaquant, de la DLL dans FrameServer.
Le PoC a été testé sur les builds 26200.8875 et 29617.1000 de Windows 11.
Le répertoire cible ne doit pas déjà exister. Depuis une invite de commandes normale, non élevée, exécutez :
CrossDeviceLPE.exe
Et voilà. Vous devriez maintenant avoir
nt authority\system
L'exécutable embarque tous les composants runtime ; aucun fichier compagnon ni argument de ligne de commande n'est requis.
Le PoC embarque SigmaPotato 1.2.6 et une compilation de VCamSample. Leurs licences se trouvent dans third_party/.
Le dépôt contient les sources du lanceur et de la charge utile, ainsi que les deux binaires tiers épinglés nécessaires à une compilation hors ligne. Sous Linux, installez la chaîne d'outils GCC MinGW-w64 et exécutez :
./build.sh