Impattu
Un attaccu pò arrubbari dati sensittivi è autenticati da l'utilizatori di una applicazione vulnerabile [S2]. Se un utilizatore visita un situ web maliziusu mentre cunnessu à l'app vulnerabile, u situ maliziusu pò fà richieste incrociate à l'app API è leghje e risposte [S1][S2]. Questu pò purtà à u furtu di l'infurmazioni privati, cumpresi i prufili d'utilizatori, tokens CSRF, o missaghji privati [S2].
Causa Root
CORS hè un mecanismu basatu in header HTTP chì permette à i servitori di specificà quale origine (dominu, schema, o portu) sò permessi di carricà risorse [S1]. Vulnerabilità sò generalmente quandu a pulitica CORS di un servitore hè troppu flessibile o mal implementata [S2]:
- Intestazione d'origine riflessa: Certi servitori leghjenu l'intestazione
Originda una dumanda di u cliente è l'ecu torna in l'intestazione di rispostaAccess-Control-Allow-Origin(ACAO) [S2]. Questu permette in modu efficace à qualsiasi situ web accede à a risorsa [S2]. - Wildcards misconfigurati: Mentre u wildcard
*permette à qualsiasi origine di accede à una risorsa, ùn pò micca esse aduprata per richieste chì necessitanu credenziali (cum'è cookies o Headers d'Autorizazione) [S3]. I sviluppatori spessu pruvate di aggirari questu generendu dinamicamente l'intestazione ACAO basatu annantu à a dumanda [S2]. - Whitelisting 'null': Alcune applicazioni whitelist l'origine
null, chì pò esse attivata da richieste redirette o schedarii lucali, chì permettenu à i siti maliziusi di masquerade cum'è unnullorigine per acquistà l'accessu - Parsing Errors: Errori in regex o string matching quandu validate l'intestazione
Originponu permette à l'attaccanti di utilizà domini cum'ètrusted-domain.com.attacker.com[S2].
Hè impurtante à nutà chì CORS ùn hè micca una prutezzione contru Cross-Site Request Forgery (CSRF) [S2].
Correzioni Concrete
- Usate una Lista Bianca Statica: Evitate di generà dinamicamente l'intestazione
Access-Control-Allow-Originda l'intestazioneOrigindi a dumanda [S2]. Invece, paragunate l'origine di a dumanda cù una lista codificata di domini di fiducia [S3]. - Evite l'Origine "nulla": Ùn includite mai
nullin a vostra lista bianca di origini permesse [S2]. - Restrizione di credenziali: Impostate solu
Access-Control-Allow-Credentials: trues'ellu hè assolutamente necessariu per l'interazzione specifica cross-origine [S3]. - Utilizà a Validazione Propria: Se duvete supportà parechje origini, assicuratevi chì a logica di validazione per l'intestazione
Originhè robusta è ùn pò micca esse ignorata da sottodomini o domini simili [S2].
Cumu FixVibe prova per questu
FixVibe include avà questu cum'è un cuntrollu attivu gated. Dopu a verificazione di u duminiu, active.cors manda richieste API di listessa origine cù una origine di attaccu sinteticu è rivisione intestazioni di risposta CORS. Riporta origini arbitrarie riflesse, CORS con credenziali wildcard, e CORS ampiamente aperto su punti finali API non publici evitando il rumore di beni pubblici.
