
CVE-2026-50343 InstallService StaticPluginMap EoP - utilisateur standard à SYSTEM
J'ai découvert et signalé indépendamment la vulnérabilité désormais suivie sous le nom de CVE-2026-50343. MSRC a confirmé que ma soumission était un doublon d'un rapport antérieur d'un autre chercheur. Un utilisateur interactif standard peut écrire un état de plugin contrôlé par l'attaquant sous HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\InstallService\State. Le service d'installation du Microsoft Store s'exécute en tant que NT AUTHORITY\SYSTEM, lit PlugInList et StaticPluginMap, et charge la DLL mappée après un déclencheur public AppInstallManager.SearchForAllUpdatesAsync(). Le résultat est une exécution de code locale de l'utilisateur standard vers SYSTEM.
📹 Vidéo de démonstration d'un shell SYSTEM interactif
InstallService fait confiance aux noms de plugins et aux chemins de DLL provenant de l'état HKLM qu'un utilisateur interactif standard peut écrire. Un utilisateur à faibles privilèges crée un nouveau nom de plugin, le pointe vers une DLL contrôlée par l'attaquant et appelle l'API WinRT de contrôle d'installation du Store. InstallService charge ensuite cette DLL dans C:\Windows\System32\svchost.exe en tant que NT AUTHORITY\SYSTEM.
La reproduction plus forte avec une VM fraîche dans ce dépôt ouvre un cmd.exe SYSTEM visible dans la session de bureau active. Dans la vidéo jointe, desktop-ud6iv88\user1 démarre en tant qu'utilisateur standard et le shell généré indique :
nt authority\system S-1-5-18
L'état vulnérable se trouve sous :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\InstallService\State\PlugInList
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\InstallService\State\StaticPluginMap
Sur les builds testés, un utilisateur interactif standard peut créer les sous-clés manquantes ou définir des valeurs en dessous. InstallService consomme ensuite ces valeurs en tant que configuration de plugin tout en s'exécutant en tant que SYSTEM.
La chaîne d'exploitation principale :
PlugInList\<fresh plugin name> = 1.StaticPluginMap\<fresh plugin name> = <attacker DLL>.AppInstallManager.SearchForAllUpdatesAsync().InstallService charge la DLL de l'attaquant en tant que SYSTEM.NT AUTHORITY\SYSTEM.Utilisez la reproduction plus forte :
interactive-system-shell-repro/
Depuis un PowerShell d'utilisateur standard :
cd interactive-system-shell-repro
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\Cleanup-InstallServiceInteractiveShell.ps1
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\Run-InstallServiceInteractiveShell.ps1
Lorsque le shell SYSTEM s'ouvre :
whoami /user
whoami /priv
Chaque exécution écrit des preuves sous :
C:\Users\Public\InstallServiceEopProof\<timestamp>
Les fichiers originaux de la soumission MSRC sont toujours présents pour référence :
| Fichier | Description |
|---|---|
exploit.ps1 | PoC autonome original qui écrit l'état du registre, déclenche InstallService et vérifie les fichiers marqueurs SYSTEM |
canary.c | Source DLL originale d'écriture de marqueur |
isp_exploit.dll | DLL préconstruite originale d'écriture de marqueur |
Utilisation :
powershell.exe -ExecutionPolicy Bypass -File .\exploit.ps1 -PayloadDll "C:\Users\Public\isp_exploit.dll"
powershell.exe -ExecutionPolicy Bypass -File .\exploit.ps1 -Cleanup
interactive-system-shell-repro/interactive-system-shell-repro/evidence/installservice-staticplugin.mp4exploit.ps1canary.cAvertissement : Ce code d'exploitation est fourni à des fins de recherche en sécurité et à des fins éducatives. Ne l'utilisez pas contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation explicite de tester. L'auteur n'est pas responsable d'une mauvaise utilisation.
CVE-2026-50343 - signalé indépendamment à MSRC sous le cas 120271 / VULN-192719 et confirmé comme doublon d'une soumission antérieure d'un chercheur.
Daniel Wade - GitHub · Twitter/X · Bluesky · Mastodon · Medium · nadsec.online
| CVE | CVE-2026-50343 |
| Cas MSRC | 120271 / VULN-192719 |
| Statut MSRC | Confirmé comme doublon d'un rapport antérieur d'un chercheur |
| Sévérité Microsoft | Important |
| CVSS Microsoft | 7.8 Élevé - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Classe de bug | ACL de registre incorrect / chargement privilégié de DLL |
| Cause racine | Les utilisateurs standard peuvent créer ou écrire l'état de la carte des plugins d'InstallService consommé par un service SYSTEM |
| Composant | Windows InstallService / courtier d'installation et de mise à jour du Microsoft Store |
| Déclencheur | Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager.SearchForAllUpdatesAsync() |
| Build testé affecté | Windows 11 25H2 build 26200.8037 |
| Build testé précédent | Windows 11 Pro 25H2 build 26200.8524 |
| Impact | Exécution de code de l'utilisateur standard vers NT AUTHORITY\SYSTEM |
| Requis | Utilisateur local standard, ouverture de session interactive |
| CWE Microsoft | CWE-269 : Gestion incorrecte des privilèges |
| Classification de la cause racine par le chercheur | CWE-732 : Attribution incorrecte des autorisations pour une ressource critique |
| Date | Événement |
|---|
| 2026-06-03 | Rapport original d'InstallService soumis à MSRC sous VULN-192719 |
| 2026-06-04 | Cas MSRC 120271 ouvert |
| 2026-06-13 | Reproduction d'un shell SYSTEM interactif d'utilisateur standard sur une build fraîche Windows 11 25H2 26200.8037 enregistrée et ajoutée au cas MSRC soumis |
| 2026-06-27 | MSRC a confirmé que le rapport était un doublon d'une soumission antérieure d'un chercheur |
| 2026-07-14 | Microsoft a publié CVE-2026-50343 et diffusé des mises à jour de sécurité |