Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-22557-check — Rileva in modo sicuro se un controller UniFi Network Application è vulnerabile a CVE-2026-22557 | Kitploit
Strumenti/GitHubGitHub/bishopfox/cve-2026-22557-check
RicognizioneAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebRaccolta InformazioniPenetration Testing
GitHubbishopfox/cve-2026-22557-check

CVE-2026-22557-check

Rileva in modo sicuro se un controller UniFi Network Application è vulnerabile a CVE-2026-22557

Vedi Repository
13 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-22557 Strumento di Valutazione della Vulnerabilità

Rileva in modo sicuro se un controller UniFi Network Application è vulnerabile a CVE-2026-22557 senza causare alcuna interruzione. Vedi l'analisi completa sul blog di Bishop Fox.

Descrizione

CVE-2026-22557 è una vulnerabilità di path-traversal non autenticata nel portale captive guest dell'UniFi Network Application che consente a un attaccante remoto di leggere file arbitrari come l'utente del processo del controller (CVSS 10.0). La vulnerabilità colpisce UniFi Network Application 10.1.85 e precedenti sul ramo 10.1.x, e le corrispondenti versioni precedenti sui rami 10.2.x e 9.0.x. Ubiquiti ha rilasciato correzioni in 10.1.89, 10.2.97 e 9.0.118 (SAB-062).

Il renderer della pagina di errore del portale guest legge il parametro di richiesta page_error e lo usa letteralmente come percorso relativo sul loader delle risorse del portale, senza alcuna validazione. Quando portal_customized: true è impostato sul sito interrogato (la configurazione che qualsiasi portale captive brandizzato, come un hotel, un negozio o un bar, assume), il loader risolve quel percorso rispetto alla directory del portale su disco, e il percorso può uscirne.

Questo strumento esegue test di vulnerabilità non distruttivi:

  1. Leggendo la versione riportata dal controller da /status e confrontandola con le linee di correzione SAB-062
  2. Confermando che il portale guest viene inviato sull'URL fornito
  3. Provando il parametro page_error su /guest/<site>/wechat/sign con profondità ../ da 1 a 8 rispetto a un nome di file a doppio ramo, per determinare se il traversal si attiva
  4. Se il traversal si attiva, esegue una lettura aggiuntiva su un file di catalogo runtime non sensibile (firmware.json) per determinare se il ramo del filesystem del portale personalizzato è attivo

Lo strumento richiede solo il file di catalogo runtime come oracolo per determinare se il ramo è attivo. Non legge credenziali, materiale TLS, stato del database o backup, e non scrive alcun contenuto di file su stdout o su disco. Viene stampato solo il verdetto.

  • Controller vulnerabili con portal_customized: true sul sito interrogato restituiscono il file di catalogo alla profondità calibrata, confermando VULNERABLE.
  • Controller parzialmente esposti in esecuzione su una build vulnerabile ma con portal_customized: false sul sito interrogato attivano il traversal nella fase di calibrazione ma non restituiscono contenuto su disco nella fase di conferma → PARTIALLY EXPOSED. Il binario dell'applicazione è ancora vulnerabile; è necessaria una patch anche se questo sito non è nello stato sfruttabile.
  • Controller patchati (10.1.89+ / 10.2.97+ / 9.0.118+) rifiutano il traversal a ogni profondità → NOT VULNERABLE.
  • Siti o connettori non raggiungibili producono NOT EXPOSED.

Installazione

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

È richiesto Python 3.9+. Lo strumento utilizza solo la libreria standard di Python, quindi non è necessario alcun passo di pip install.

Utilizzo

Testa un controller UniFi Network Application all'<TARGET>. Punta lo strumento a qualsiasi URL raggiunga l'interfaccia web del controller; il gestore vulnerabile è inviato sulla porta admin (predefinita 8443/TCP) così come sulle porte dedicate del portale guest (8843, 8880).

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

Lo slug predefinito del sito è default. Le distribuzioni UniFi con più siti configurati dovrebbero eseguire nuovamente lo strumento con --site <nome> per ciascuno. Un controller è sfruttabile non appena qualsiasi dei suoi siti ha portal_customized: true.

Gli esempi seguenti usano --brief per un risultato di una riga per host. Esegui senza --brief per ottenere il banner completo, il progresso passo-passo e un blocco di risultato che include le azioni di remediation consigliate.

Esempio: Controller Vulnerabile

Il controller è su una build vulnerabile e la precondizione del portale personalizzato è attiva per il sito interrogato, quindi il percorso di lettura non autenticato è raggiungibile.

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

Esempio: Controller Parzialmente Esposto

Il controller è su una build vulnerabile, ma il sito interrogato non ha portal_customized: true abilitato, quindi la precondizione di lettura su disco non è soddisfatta per questo sito. Il binario dell'applicazione deve comunque essere patchato; un altro sito sullo stesso controller potrebbe ancora essere nello stato sfruttabile.

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

Esempio: Controller Patchato

Il controller è su una build corretta (10.1.89, 10.2.97, 9.0.118 o successive), quindi il traversal non si attiva su nessuna profondità interrogata.

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

Opzioni

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

Codici di uscita: 0 VULNERABLE, 1 parzialmente esposto / non vulnerabile / non esposto, 2 errore di trasporto.

Precondizioni

Lo strumento può restituire un verdetto VULNERABLE solo se sono soddisfatte le seguenti condizioni:

  • Il target esegue una build vulnerabile di UniFi Network Application (10.1.85 o precedente sul ramo 10.1.x, o le corrispondenti versioni precedenti sui rami 10.2.x / 9.0.x).
  • Il portale guest è raggiungibile all'URL fornito. Il gestore /guest/* è inviato sulla porta admin (8443) così come sulle porte dedicate del portale guest (8843, 8880); lo strumento interroga solo l'URL che gli viene dato.
  • Il sito interrogato ha portal_customized: true nella sua impostazione guest_access, che è la precondizione per il percorso di codice di lettura su disco. Un controller con più siti è sfruttabile se qualsiasi dei suoi siti ha questa impostazione abilitata.

Se una qualsiasi condizione non è soddisfatta, lo strumento passa a un verdetto più conservativo. Un risultato PARTIALLY EXPOSED significa comunque che l'applicazione è vulnerabile e deve essere patchata; il sito interrogato semplicemente non espone il percorso di lettura su disco.

Mitigazione

  1. Aggiorna a UniFi Network Application 10.1.89, 10.2.97, 9.0.118 o successive.
  2. Se non puoi patchare immediatamente, limita l'accesso di rete alle porte 8443 / 8843 / 8880 (e qualsiasi proxy inverso che le fronteggia) in modo che siano raggiungibili solo da reti di gestione fidate.
  3. Dopo la patch, ruota tutte le credenziali che potrebbero essere state divulgate mentre il controller era raggiungibile: password degli amministratori, la credenziale SSH che il controller invia ai dispositivi gestiti, il keystore TLS del controller, i segreti condivisi RADIUS, le chiavi VPN/WireGuard, il materiale CA di ispezione SSL, le password del relay SMTP e qualsiasi chiave del gateway di pagamento.

Rilevamento nei tuoi log

Il pattern di richiesta vulnerabile è:

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

I client legittimi raggiungono /guest/s/<site>/wechat/sign solo tramite POST (che il dispatcher accetta senza attivare il renderer della pagina di errore). Qualsiasi GET di questo endpoint con un parametro query page_error=, in particolare che contenga ../, %2e%2e o un / iniziale, è anomalo e deve essere trattato come un tentativo di sfruttamento. Il log di accesso standard di Tomcat cattura la riga di richiesta completa inclusa la stringa di query.

Licenza

Questo codice è distribuito sotto una licenza MIT.

Disclaimer Legale

L'utilizzo di questo strumento per attaccare target senza consenso reciproco preventivo è illegale. È responsabilità dell'utente finale rispettare tutte le leggi locali, statali e federali applicabili. Gli sviluppatori non si assumono alcuna responsabilità e non sono responsabili per qualsiasi uso improprio o danno causato da questo programma.

Vedi Anche

  • Bollettino di sicurezza Ubiquiti SAB-062
  • Blog di Bishop Fox: analisi tecnica completa
Scarica lo strumento