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-2026-22557-check — Détecter en toute sécurité si un contrôleur UniFi Network Application est vulnérable à CVE-2026-22557 | Kitploit
Outils/GitHubGitHub/bishopfox/cve-2026-22557-check
ReconnaissanceAnalyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsTests d'Intrusion
GitHubbishopfox/cve-2026-22557-check

CVE-2026-22557-check

Détecter en toute sécurité si un contrôleur UniFi Network Application est vulnérable à CVE-2026-22557

Voir le dépôt
1il y a 3 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

Outil d'évaluation de la vulnérabilité CVE-2026-22557

Détectez en toute sécurité si un contrôleur UniFi Network Application est vulnérable à CVE-2026-22557 sans causer de perturbation. Voir l'analyse complète sur le blog de Bishop Fox.

Description

CVE-2026-22557 est une vulnérabilité de parcours de chemin non authentifié dans le portail captif invité de l'application UniFi Network, permettant à des attaquants distants de lire des fichiers arbitraires en tant qu'utilisateur du processus contrôleur (CVSS 10.0). La vulnérabilité affecte UniFi Network Application 10.1.85 et versions antérieures sur la branche 10.1.x, ainsi que les versions antérieures correspondantes sur les branches 10.2.x et 9.0.x. Ubiquiti a publié des correctifs dans les versions 10.1.89, 10.2.97 et 9.0.118 (SAB-062).

Le moteur de rendu de la page d'erreur du portail invité lit le paramètre de requête page_error et l'utilise textuellement comme chemin relatif sur le chargeur de ressources du portail, sans aucune validation. Lorsque portal_customized: true est défini sur le site interrogé (la configuration que tout portail captif de marque, comme un déploiement hôtelier, commercial ou de café, finit par avoir), le chargeur résout ce chemin par rapport au répertoire du portail sur disque, et le chemin peut s'en échapper.

Cet outil effectue des tests de vulnérabilité non destructifs en :

  1. Lecture de la version rapportée du contrôleur depuis /status et comparaison avec les lignes de correctif SAB-062
  2. Confirmation que le portail invité est bien dispatché sur l'URL fournie
  3. Sondage du paramètre page_error sur /guest/<site>/wechat/sign avec des profondeurs ../ de 1 à 8 sur un nom de fichier à double branche, pour déterminer si le parcours se déclenche
  4. Si le parcours se déclenche, effectuer une lecture supplémentaire d'un fichier de catalogue d'exécution non sensible (firmware.json) pour déterminer si la branche du système de fichiers du portail personnalisé est active

L'outil ne demande que le fichier de catalogue d'exécution comme oracle de branche active. Il ne lit pas les identifiants, les certificats TLS, l'état de la base de données ou les sauvegardes, et n'écrit aucun contenu de fichier sur stdout ou sur disque. Seul le verdict est affiché.

  • Contrôleurs vulnérables avec portal_customized: true sur le site interrogé renvoient le fichier catalogue à la profondeur calibrée, confirmant VULNERABLE.
  • Contrôleurs partiellement exposés exécutant une version vulnérable mais avec portal_customized: false sur le site interrogé déclenchent le parcours à l'étape d'étalonnage mais ne renvoient pas de contenu disque à l'étape de confirmation → PARTIALLY EXPOSED. Le binaire de l'application est toujours vulnérable ; un correctif est requis même si ce site n'est pas dans un état exploitable.
  • Contrôleurs corrigés (10.1.89+ / 10.2.97+ / 9.0.118+) rejettent le parcours à chaque profondeur → NOT VULNERABLE.
  • Sites ou connecteurs inaccessibles donnent NOT EXPOSED.

Installation

root@kitploit:~
git clone https://github.com/BishopFox/CVE-2026-22557-check
cd CVE-2026-22557-check

Python 3.9+ est requis. L'outil utilise uniquement la bibliothèque standard Python, donc aucune étape pip install n'est nécessaire.

Utilisation

Testez un contrôleur UniFi Network Application à <TARGET>. Pointez l'outil vers l'URL qui atteint l'interface web du contrôleur ; le gestionnaire vulnérable est dispatché sur le port d'administration (par défaut 8443/TCP) ainsi que sur les ports dédiés du portail invité (8843, 8880).

root@kitploit:~
python3 cve_2026_22557_check.py <BASE_URL> [--site NAME]

L'identifiant de site par défaut est default. Les déploiements UniFi avec plusieurs sites configurés doivent relancer l'outil avec --site <name> pour chacun d'eux. Un contrôleur est exploitable dès que l'un de ses sites a portal_customized: true.

Les exemples ci-dessous utilisent --brief pour un résultat par ligne par hôte. Exécutez sans --brief pour obtenir la bannière complète, la progression étape par étape et un bloc de résultat comprenant les actions de correction recommandées.

Exemple : Contrôleur vulnérable

Le contrôleur est sur une version vulnérable et la précondition du portail personnalisé est active pour le site interrogé, donc le chemin de lecture non authentifié est accessible.

root@kitploit:~
$ python3 cve_2026_22557_check.py https://192.168.1.100:8443 --brief
[VULNERABLE]        https://192.168.1.100:8443 site=default

Exemple : Contrôleur partiellement exposé

Le contrôleur est sur une version vulnérable, mais le site interrogé n'a pas portal_customized: true activé, donc la précondition de lecture disque n'est pas remplie pour ce site. Le binaire de l'application doit toujours être corrigé ; un autre site sur le même contrôleur peut encore être dans un état exploitable.

root@kitploit:~
$ python3 cve_2026_22557_check.py https://192.168.1.100:8443 --brief
[PARTIAL]           https://192.168.1.100:8443 site=default

Exemple : Contrôleur corrigé

Le contrôleur est sur une version corrigée (10.1.89, 10.2.97, 9.0.118 ou ultérieure), donc le parcours ne se déclenche à aucune profondeur testée.

root@kitploit:~
$ python3 cve_2026_22557_check.py https://192.168.1.200:8443 --brief
[NOT VULNERABLE]    https://192.168.1.200:8443 site=default

Options

root@kitploit:~
--site NAME       UniFi site slug to probe (default: "default")
--max-depth N     maximum ../ traversal depth to try (default: 8)
--no-tls-recon    skip TLS certificate subject/SAN display
--no-color        disable ANSI color output (also honored: NO_COLOR env var)
--timeout N       per-request timeout in seconds (default: 20)
--brief           print a single-line result, no banner or steps

Codes de sortie : 0 VULNERABLE, 1 partiellement exposé / non vulnérable / non exposé, 2 erreur de transport.

Prérequis

L'outil ne peut renvoyer un verdict VULNERABLE que si les conditions suivantes sont remplies :

  • La cible exécute une version vulnérable d'UniFi Network Application (10.1.85 ou antérieure sur la branche 10.1.x, ou les versions ponctuelles antérieures équivalentes sur 10.2.x / 9.0.x).
  • Le portail invité est accessible à l'URL fournie. Le gestionnaire /guest/* est dispatché sur le port d'administration (8443) ainsi que sur les ports dédiés du portail invité (8843, 8880) ; l'outil ne sonde que l'URL qui lui est donnée.
  • Le site interrogé a portal_customized: true dans son paramètre guest_access, ce qui est la précondition pour le chemin de code de lecture disque. Un contrôleur avec plusieurs sites est exploitable si l'un de ses sites a ce paramètre activé.

Si l'une des conditions n'est pas remplie, l'outil retombe sur un verdict plus conservateur. Un résultat PARTIALLY EXPOSED signifie toujours que l'application est vulnérable et doit être corrigée ; le site interrogé se trouve simplement ne pas exposer le chemin de lecture disque.

Correction

  1. Mettez à jour vers UniFi Network Application 10.1.89, 10.2.97, 9.0.118 ou version ultérieure.
  2. Si vous ne pouvez pas appliquer le correctif immédiatement, restreignez l'accès réseau aux ports 8443 / 8843 / 8880 (et à tout proxy inverse les précédant) afin qu'ils ne soient accessibles que depuis des réseaux de gestion de confiance.
  3. Après la mise à jour, renouvelez tous les identifiants qui ont pu être divulgués pendant que le contrôleur était accessible : mots de passe administrateur, identifiants SSH que le contrôleur pousse vers les appareils gérés, keystore TLS du contrôleur, secrets partagés RADIUS, clés VPN / WireGuard, certificats d'autorité d'inspection SSL, mots de passe de relais SMTP et toutes les clés de passerelle de paiement.

Détection dans vos journaux

Le modèle de requête vulnérable est :

root@kitploit:~
GET /guest/s/<site>/wechat/sign?page_error=<value>

Les clients légitimes atteignent /guest/s/<site>/wechat/sign uniquement via POST (que le répartiteur accepte sans déclencher le rendu de la page d'erreur). Tout GET de ce point de terminaison portant un paramètre de requête page_error=, contenant notamment ../, %2e%2e ou un / en tête, est anormal et doit être traité comme une tentative d'exploitation. Le journal d'accès standard de Tomcat capture la ligne de requête complète, y compris la chaîne de requête.

Licence

Ce code est distribué sous une licence MIT.

Avertissement légal

L'utilisation de cet outil pour attaquer des cibles sans consentement mutuel préalable est illégale. Il est de la responsabilité de l'utilisateur final de respecter toutes les lois locales, étatiques et fédérales applicables. Les développeurs déclinent toute responsabilité et ne sont pas responsables de toute mauvaise utilisation ou de tout dommage causé par ce programme.

Voir aussi

  • Avis de sécurité Ubiquiti SAB-062
  • Blog Bishop Fox : analyse technique complète
Télécharger l’outil