Vérificateur Python en lecture seule qui valide le comportement de contournement d'authentification de CVE-2026-20079 sur Cisco FMC en comparant les réponses de session non authentifiées et csm_processes.
Un petit utilitaire de validation délibérément limité pour CVE-2026-20079, la vulnérabilité de contournement d'authentification du Cisco Secure Firewall Management Center (FMC).
Ce dépôt est un vérificateur, pas un exploit.
Il ne contient pas les parties de mise à niveau de session, d'écriture de fichier, d'exécution de commande ou de RCE de la chaîne de vulnérabilité.
Le vérificateur envoie deux requêtes HTTPS à /help/about.cgi :
CGISESSID=csm_processes.Un résultat n'est marqué CONFIRMED que lorsque la seconde réponse :
csm_processes.Cela fournit un moyen conservateur et en lecture seule de valider le comportement de contournement d'authentification que nous avons reproduit en laboratoire.
Un résultat négatif ne prouve pas que l'appliance est corrigée.
Le contournement documenté nécessite que la session csm_processes créée au démarrage
reste dans la base de données de sessions de l'appliance. L'activité authentifiée du
tableau de bord/des widgets, l'activité de l'interface gérée par le cloud et le nettoyage
déclenché par l'authentification peuvent la supprimer. Une fois supprimée, ce contournement
ne peut plus utiliser cette session ; un redémarrage ultérieur peut la recréer sur une
appliance affectée. Cela n'établit pas que chaque connexion réussie désactive
immédiatement le contournement. Voir
l'analyse des prérequis de VulnCheck.
État préféré pour une validation contrôlée en laboratoire : tester une appliance récemment redémarrée dès que son interface web est disponible, avant que tout utilisateur ne s'authentifie ou n'interagisse avec l'interface web. Cette recommandation découle des prérequis de session publiés : elle augmente la probabilité que la session créée au démarrage existe encore, mais ne garantit pas un résultat positif.
Distinguez l'état de test du résultat : une appliance récemment redémarrée offre une meilleure opportunité d'observer ce comportement ; un résultat négatif après connexion ou nettoyage de session n'établit pas que l'appliance est corrigée. Même un résultat négatif immédiatement après un redémarrage n'est pas une preuve du statut de correctif.
Par exemple, un utilisateur s'authentifie et l'activité de l'interface efface la session.
Si le vérificateur reçoit alors une redirection ou un HTTP 401/403, il rapporte
NOT_CONFIRMED : négatif pour le comportement observé, potentiellement un faux négatif
pour l'exposition à la vulnérabilité. L'authentification n'est pas un correctif.
Le vérificateur ne peut pas observer l'historique des connexions ni la base de données de
sessions. Il classe la réponse HTTP, donc une authentification antérieure seule ne
constitue pas un motif pour forcer un résultat négatif. Les autres réponses inattendues
restent INCONCLUSIVE, et les échecs de requête restent ERROR.
Utilisez l'avis de Cisco et le Software Checker pour déterminer l'exposition aux correctifs.
La version publique n'a intentionnellement aucune fonctionnalité pour :
Seules les adresses IP littérales fournies par l'opérateur sont acceptées.
Les IP publiques nécessitent le flag explicite --allow-public.
requestsInstallation :
python3 -m pip install -r requirements.txt
IP privée/laboratoire :
python3 CVE-2026-20079-checker.py --host 192.168.1.100
IP publique que vous êtes autorisé à évaluer :
python3 CVE-2026-20079-checker.py \
--host 203.0.113.10 \
--allow-public
Créez targets.txt :
# One literal IP address per line
192.168.1.100
192.168.1.101
Exécutez :
python3 CVE-2026-20079-checker.py \
--targets targets.txt \
--json results.json \
--csv results.csv
Pour une liste autorisée contenant des IP publiques :
python3 CVE-2026-20079-checker.py \
--targets targets.txt \
--allow-public \
--workers 4 \
--json results.json
L'outil n'accepte intentionnellement pas les plages CIDR.
Les scans d'un seul hôte affichent un bloc détaillé. Exemple de sortie utilisant
l'appliance de laboratoire documentée (FMC 7.4.2 Build 172) et la cible d'exemple 192.168.1.100 :
[*] CVE-2026-20079 Read-Only Validation
[*] Target : 192.168.1.100
[*] Endpoint : /help/about.cgi
[*] Mode : Read-only / no exploitation
[+] Appliance : Cisco Secure Firewall Management Center for KVM
[+] Version : 7.4.2
[+] Build : 172
[+] Server : Mojolicious (Perl)
[*] Baseline HTTP : 302
[*] Session HTTP : 200
[*] Session Context : csm_processes
[*] Comparison : baseline=302 -> probe=200
[CONFIRMED] CVE-2026-20079 authentication-bypass behavior observed
[*] Reason : Server returned FMC content with HTTP 200 while explicitly identifying the csm_processes session context.
[*] Summary:
confirmed=1
not_confirmed=0
inconclusive=0
errors=0
[!] Note : NOT_CONFIRMED does not prove the appliance is patched
Les scans utilisant --targets FILE affichent un tableau compact avec les colonnes
TARGET, RESULT, VERSION, BASE et PROBE, suivi d'un résumé. Les détails manquants
apparaissent sous la forme not observed dans la vue détaillée ou - dans le tableau. Les
libellés de produit et de contexte de session sont informatifs ; ils ne modifient pas les
critères de détection. JSON/CSV conservent tous les champs existants et ajoutent product
et session_context. Ni un résultat négatif ni des métadonnées manquantes n'établissent le
statut de correctif.
| Résultat | Signification |
|---|---|
CONFIRMED | La réponse observée correspond à l'indicateur de contournement en lecture seule utilisé par ce vérificateur. |
NOT_CONFIRMED | La sonde a renvoyé une redirection ou un HTTP 401/403. Le contournement n'a pas été observé ; la session requise peut être absente. Cela n'est pas équivalent à « corrigé ». |
INCONCLUSIVE | Un comportement de type FMC ou autrement inhabituel a été observé mais le vérificateur n'a pas pu confirmer l'identité de la session. |
ERROR | Une défaillance réseau/TLS/requête a empêché toute détermination. |
Codes de sortie :
0 — aucun résultat confirmé1 — toutes les vérifications ont échoué avec des erreurs de requête2 — au moins un résultat confirmé64 — cible publique fournie sans --allow-publicLe code de sortie 0 signifie aucun résultat confirmé, y compris les exécutions avec des
résultats non concluants ou un mélange d'erreurs de requête et de résultats non confirmés.
Ce n'est pas un verdict sur le statut de correctif. De même, vulnerable_behavior: false
dans un export signifie que les critères de confirmation n'ont pas été satisfaits.
Pendant le développement, le comportement en lecture seule a été reproduit contre :
Cisco Secure Firewall Management Center for KVM
7.4.2 Build 172
Le but de documenter cette observation est la reproductibilité ; ce n'est pas un substitut aux informations faisant autorité de Cisco sur les versions vulnérables/corrigées.
Voir docs/LAB-NOTES.md.
Cisco classe CVE-2026-20079 Critique (CVSS 10.0) et indique qu'une exploitation réussie peut entraîner un accès root. Cisco a publié des correctifs/hot fixes et signale une exploitation active en août 2026.
Suivez l'avis actuel de Cisco et le Software Checker plutôt que de vous fier uniquement à ce scanner.
N'exécutez cet utilitaire que contre des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation explicite d'évaluation.
Les tests de sécurité réseau peuvent déclencher des contrôles de surveillance, des limites de débit, des processus de réponse aux incidents ou des systèmes d'abus de fournisseur de services, même lorsque les requêtes sont en lecture seule.
MIT. Voir LICENSE.