
Python script to sweep a fleet of Palo Alto firewalls and Panoramas via SSH, check PAN-OS version against CVE-2026-0265 (Authentication Bypass via Cloud Authentication Service), detect whether CAS is actually configured, and report exploitability in a color-coded summary table.
VULNERABLE — version affectée et CAS configuré (exposition réelle)
NOT_EXPLOITABLE — version affectée, mais aucun profil CAS défini ; le chemin de code vulnérable n'est pas accessible
SAFE — exécute une version corrigée ou non affectéeparamiko (pip install paramiko)
Un compte administrateur en lecture seule présent sur chaque appareil de votre liste (TACACS+, RADIUS, SAML ou local — tout fonctionne tant que les mêmes identifiants s'authentifient partout).
Accessibilité SSH (TCP/22) depuis l'endroit où vous exécutez le script jusqu'à l'interface de gestion de chaque appareil.Installation
git clone https://github.com/YOUR_USERNAME/palo-alto-cve-2026-0265-checker.git
cd palo-alto-cve-2026-0265-checker
pip install paramiko
check_cve_2026_0265.py et modifiez la liste DEVICES en haut du fichier avec vos propres noms d'hôte et adresses IP de gestion :
Vous pouvez éventuellement modifier pour y mettre le nom de votre compte administrateur en lecture seule standard.
Exécutez le script :
Saisissez votre nom d'utilisateur et votre mot de passe SSH lorsque vous y êtes invité. Les mêmes identifiants sont réutilisés pour chaque appareil.Exemple de sortie
================================================================================
CVE-2026-0265 Risk Checker - Multi-device PAN-OS sweep
================================================================================
Devices in list: 6
Parallel workers: 8
SSH username for all devices [admin]:
Password for admin:
Checking devices (results appear as each finishes) ...
------------------------------------------------------------------------------
[ 1/ 6] fw1-prod-region1 192.0.2.10 NOT_EXPLOITABLE 11.1.4-h7 CAS:no
[ 2/ 6] fw2-prod-region1 192.0.2.11 NOT_EXPLOITABLE 11.1.4-h7 CAS:no
[ 3/ 6] fw1-prod-region2 192.0.2.20 SAFE 11.0.3-h10 CAS:no
[ 4/ 6] fw2-prod-region2 192.0.2.21 SAFE 11.0.3-h10 CAS:no
[ 5/ 6] panorama1-region1 198.51.100.10 NOT_EXPLOITABLE 11.2.7-h4 CAS:no
[ 6/ 6] panorama2-region2 198.51.100.20 NOT_EXPLOITABLE 11.2.7-h4 CAS:no
------------------------------------------------------------------------------
Completed in 18.4 seconds
================================================================================
CVE-2026-0265 Assessment Summary
================================================================================
-----------------------------------------------------------------------------------------------------
HOSTNAME MGMT IP VERSION AFFECTED BY CVE CAS STATUS FIX VERSION
-----------------------------------------------------------------------------------------------------
fw1-prod-region1 192.0.2.10 11.1.4-h7 yes no NOT_EXPLOITABLE 11.1.4-h33
fw2-prod-region1 192.0.2.11 11.1.4-h7 yes no NOT_EXPLOITABLE 11.1.4-h33
panorama1-region1 198.51.100.10 11.2.7-h4 yes no NOT_EXPLOITABLE 11.2.7-h13
panorama2-region2 198.51.100.20 11.2.7-h4 yes no NOT_EXPLOITABLE 11.2.7-h13
fw1-prod-region2 192.0.2.20 11.0.3-h10 no no SAFE -
fw2-prod-region2 192.0.2.21 11.0.3-h10 no no SAFE -
-----------------------------------------------------------------------------------------------------
Total: 6 | Vulnerable: 0 | Not exploitable: 4 | Safe: 2 | Errors: 0
-----------------------------------------------------------------------------------------------------
Comment ça fonctionne Pour chaque appareil, le script ouvre une session SSH interactive et exécute deux commandes :
show system info | match sw-
show config running | match cloud-authentication-service
La première renvoie une ligne du type sw-version: 11.1.4-h7. La seconde est vide si aucun profil d'authentification basé sur CAS n'est configuré sur l'appareil. Le script croise ces deux réponses avec le tableau des versions affectées issu du bulletin publié.
Note sur la détection CAS : lorsqu'un filtre
matchne trouve aucune correspondance, l'appareil ne renvoie rien d'autre que la commande en écho et l'invite suivante. Le script tient compte du fait que la commande en écho contient elle-même le mot-clé et ne signale CAS comme « configuré » que lorsque le mot-clé apparaît plus d'une fois dans la sortie.
Avertissement Ce script est fourni tel quel pour un usage défensif et opérationnel en sécurité. Il n'est affilié à Palo Alto Networks ni approuvé par celui-ci. Confirmez toujours l'applicabilité de la CVE par rapport au bulletin officiel du fournisseur avant de prendre des décisions concernant les correctifs.
showuser@host(active)>AFFECTED BY CVECASSTATUSexitpython DEVICES = [ ("fw1-prod-region1", "192.0.2.10"), ("fw2-prod-region1", "192.0.2.11"), ("panorama1", "198.51.100.10"), # ... ] DEFAULT_USERbash python check_cve_2026_0265.py STATUSVULNERABLENOT_EXPLOITABLESAFEAUTH_FAILUNREACHABLEPARSE_ERRNOT_EXPLOITABLEcloud-authentication-serviceVULNERABLE