
Ricerca sulla sicurezza e divulgazione delle vulnerabilità per l'app ownCloud ONLYOFFICE Integration, inclusi analisi tecnica, PoC, impatto e remediation.
CWE-307: Restrizione impropria dei tentativi di autenticazione eccessivi Gravità
CVSS v3.1: 8.1 (Alta)
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Il punteggio riflette l'impatto osservato durante i test del flusso di autenticazione interessato.
Owncloud versione 10.16.3
L'endpoint WebDAV interessato accetta le credenziali di autenticazione tramite l'header HTTP Authorization: Basic.
Richiesta di esempio:
GET /remote.php/webdav/ HTTP/1.1 Host: target.example Authorization: Basic <BASE64(username:password)>
Il valore Base64 rappresenta:
username:password
Ripetuti fallimenti di autenticazione contro lo stesso account non attivano i meccanismi di protezione contro il brute-force attesi.
Durante i test, sono stati inviati più tentativi di autenticazione non validi consecutivi senza osservare:
Limitazione della frequenza
Ritardi progressivi di autenticazione
Blocco temporaneo dell'account
HTTP 429 Too Many Requests
Un successivo tentativo di autenticazione con credenziali valide è stato comunque accettato.
Passo 1 — Accedere al flusso di autenticazione WebDAV
Autenticarsi a ownCloud e ottenere l'accesso a un documento/condivisione privata che utilizza il flusso di autenticazione WebDAV interessato.
Quando si accede all'endpoint interessato, il server presenta una richiesta di autenticazione HTTP Basic.
Passo 2 — Osservare la richiesta di autenticazione
Le credenziali vengono trasmesse tramite l'header HTTP Authorization:
Authorization: Basic <BASE64(username:password)>
Passo 3 — Eseguire tentativi di autenticazione ripetuti
Utilizzando un account di test controllato, inviare ripetutamente richieste di autenticazione contenenti password non valide.
Credenziali di test di esempio:
testuser:incorrect-password-01 testuser:incorrect-password-02 testuser:incorrect-password-03 ...
Le richieste possono essere riprodotte utilizzando Burp Suite Intruder o un altro strumento di test HTTP.
Passo 4 — Osservare il comportamento del server
Dopo più tentativi di autenticazione falliti consecutivi, il server continua ad accettare richieste di autenticazione senza applicare un meccanismo efficace di protezione contro il brute-force.
Non si osserva alcun blocco temporaneo, ritardo progressivo, limitazione della frequenza o risposta HTTP 429 Too Many Requests.
Passo 5 — Verificare l'autenticazione riuscita
Una richiesta successiva con le credenziali corrette viene accettata normalmente.
Ciò dimostra che ripetuti fallimenti di autenticazione non limitano sufficientemente i successivi tentativi di indovinare la password attraverso il meccanismo di autenticazione WebDAV interessato.
Un breve video PoC che dimostra il test completo è incluso in questa ricerca.
Un attaccante in grado di raggiungere l'endpoint di autenticazione WebDAV interessato può tentare ripetutamente password contro gli account utente senza incontrare efficaci protezioni a livello applicativo contro il brute-force.
Un tentativo di indovinare la password riuscito potrebbe comportare l'accesso non autorizzato all'account ownCloud preso di mira e alle sue risorse associate, a seconda dei privilegi e delle autorizzazioni di tale account.
La vulnerabilità aumenta quindi la fattibilità di attacchi online di indovinamento della password contro account esposti attraverso il flusso di autenticazione interessato.
Un problema simile è stato precedentemente segnalato in un prodotto Nextcloud correlato e assegnato:
CVE-2023-32319
Riferimento:
HackerOne Report #1879549
Questo riferimento è fornito per confrontare il problema di protezione contro il brute-force dell'autenticazione e non implica che le due vulnerabilità siano identiche.
Il flusso di autenticazione WebDAV dovrebbe essere integrato con il meccanismo di protezione contro il brute-force esistente dell'applicazione.
I controlli raccomandati includono:
Tracciare i tentativi di autenticazione falliti per ciascun account e/o origine.
Applicare ritardi progressivi dopo ripetuti fallimenti di autenticazione.
Applicare un numero massimo configurabile di tentativi falliti consecutivi.
Rifiutare temporaneamente ulteriori tentativi di autenticazione dopo aver raggiunto la soglia configurata.
Restituire HTTP 429 Too Many Requests quando viene attivato il rate limiting.
Applicare la protezione in modo coerente su tutti i meccanismi di autenticazione, inclusa l'HTTP Basic Authentication utilizzata da WebDAV.
Assicurarsi che meccanismi di autenticazione o endpoint alternativi non possano essere utilizzati per aggirare la protezione anti brute-force esistente dell'applicazione.
Una possibile policy potrebbe limitare temporaneamente l'autenticazione dopo un numero configurabile di fallimenti consecutivi, ad esempio 10 tentativi. La soglia esatta e il periodo di restrizione dovrebbero essere determinati in base ai requisiti di sicurezza dell'applicazione.
ownCloud Server: https://github.com/owncloud/core
Vulnerabilità correlata: CVE-2023-32319
HackerOne Report #1879549: https://hackerone.com/reports/1879549
Hoang126 per conto del team di sicurezza di ETC JSC
Ricerca sulla sicurezza e divulgazione responsabile.
Questa ricerca è stata condotta per scopi di security testing e divulgazione responsabile.
I test sono stati eseguiti su un ambiente controllato. Non è stato effettuato alcun accesso non autorizzato ad account o dati di terze parti.