
Reproduction de CVE : cve-2024-0012_9474-panos_authbypass_reproduction
| CVE |
|---|
| Description |
|---|
| CVSS |
|---|
| CVE-2024-0012 | Contournement d'authentification de l'interface de gestion PAN-OS | 9.3 |
| CVE-2024-9474 | Escalade de privilèges PAN-OS | 6.9 |
Enchaînées, ces vulnérabilités permettent l'exécution de code à distance sans authentification sur l'interface web de gestion PAN-OS.
Les deux ont été exploitées activement en tant que zero-day dans la nature sous ce qui a été suivi sous le nom Operation Lunar Peek. La recherche a été initialement divulguée par watchTowr.
L'interface web de gestion PAN-OS de Palo Alto Networks est exposée à deux failles critiques qui, combinées, donnent à un attaquant un accès complet root sans aucune authentification :
L'interface web de gestion valide incorrectement l'authentification pour certaines API et points de terminaison PHP. En manipulant les chemins des requêtes HTTP (par exemple, techniques de traversée de chemin ou double slash), un attaquant peut atteindre des gestionnaires restreints qui nécessitent normalement une session valide. Cela accorde effectivement un accès non authentifié aux points de terminaison PHPRESTAPI et autres points internes.
La cause racine réside dans les règles de routage Nginx/Apache qui ne parviennent pas à appliquer les vérifications de session sur des motifs URI spécifiques, permettant aux requêtes de contourner le middleware d'authentification.
Une fois authentifié (même en tant qu'utilisateur en lecture seule ou à faibles privilèges), la vulnérabilité existe dans le mécanisme de sérialisation de session PHP. Le session.save_path est mal configuré, et le nom de fichier de session est partiellement contrôlé par l'utilisateur. En créant un identifiant de session contenant des séquences de traversée de chemin, un attaquant peut écrire un fichier de session PHP à un emplacement arbitraire (par exemple ../utils/webshell.php).
Étant donné que le serveur web s'exécute en tant que root, le fichier écrit hérite de la propriété root, donnant à l'attaquant un webshell de niveau root.
| Version PAN-OS | Affectée | Corrigée dans |
|---|---|---|
| 10.2 | < 10.2.12-h2 | 10.2.12-h2 |
| 11.0 | < 11.0.6-h1 | 11.0.6-h1 |
| 11.1 | < 11.1.5-h1 | 11.1.5-h1 |
| 11.2 | < 11.2.4-h1 | 11.2.4-h1 |
| 11.3 | Non affectée | — |
| Cloud NGFW | Non affectée | — |
Attaquant (non authentifié)
│
├─ CVE-2024-0012 ─────────────────────────────┐
│ Contournement d'auth via URI modifié │
│ → Accès au point de terminaison PHPRESTAPI │
│ → Création d'une clé API / session à faible privilège│
└──────────────────────────────────────────────┘
│
├─ CVE-2024-9474 ─────────────────────────────┐
│ Utilisation de la session/clé obtenue │
│ → Envoi d'un ID de session PHP modifié (traversée de chemin)│
│ → Écriture d'un fichier de session dans la racine web │
│ → Le fichier contient du code PHP (webshell) │
└──────────────────────────────────────────────┘
│
▼
RCE en tant que root via webshell
X-PAN-) contenant une traversée ../ pour écrire une charge utile PHP dans le répertoire php/ accessible par le web./php/<shell>.php pour exécuter des commandes arbitraires en tant que root.Voir exploit.py dans ce répertoire pour une preuve de concept fonctionnelle qui enchaîne les deux CVE.