Rilascio del framework Qt 6.6

È stata scoperta una vulnerabilità (CVE-2023-38545) nell'utilità per la ricezione e invio di dati tramite rete curl e nella parallela libreria in sviluppo libcurl, che potrebbe portare a un buffer overflow e potenzialmente all'esecuzione di codice da parte di un attaccante sul lato client quando si accede a un server HTTPS controllato dall'aggressore utilizzando curl o un'applicazione che utilizza libcurl. Il problema si manifesta solo nel caso in cui si attivi l'accesso tramite proxy SOCKS5 in curl. Non si verifica vulnerabilità in caso di accesso diretto senza proxy. La vulnerabilità è stata corretta nella versione curl 8.4.0. Il ricercatore di sicurezza che ha individuato il bug ha ricevuto una ricompensa di $4660 nell'ambito dell'iniziativa Internet Bug Bounty su Hackerone.

La vulnerabilità è causata da un errore nel codice di risoluzione del nome host prima di accedere al proxy SOCKS5. Con lunghezze del nome host fino a 256 caratteri, curl invia immediatamente il nome al proxy SOCKS5 per la risoluzione sul suo lato, mentre se il nome supera i 255 caratteri, passa a un risolutore locale e invia al SOCKS5 già un indirizzo determinato. A causa di un errore nel codice, il flag che indica la necessità di una risoluzione locale, durante il processo di connessione lenta tramite SOCKS5, potrebbe essere impostato su un valore errato, portando alla registrazione di un lungo nome host in un buffer allocato per memorizzare Indirizzi IP o un nome che non superi 255 caratteri.

Il proprietario del sito a cui curl accede attraverso il proxy SOCKS5 può innescare un buffer overflow sul lato client, restituendo in risposta un codice di reindirizzamento della richiesta (HTTP 30x) e impostando nell'intestazione "Location:" un URL con un nome host la cui dimensione varia da 16 a 64 KB (il valore di 16 KB è determinato dalle dimensioni minime necessarie per provocare un overflow del buffer allocato, mentre il valore di 65 KB è legato alla lunghezza massima consentita per un nome host in un URL). Se nelle impostazioni di libcurl è consentito il reindirizzamento delle richieste e il proxy SOCKS5 utilizzato è abbastanza lento, il nome lungo dell'host verrà scritto in un buffer più piccolo, di dimensioni notevolmente inferiori.

La vulnerabilità colpisce principalmente le applicazioni basate su libcurl e si manifesta nell'utilità curl solo quando si utilizza l'opzione "—limit-rate" con un valore inferiore a 65541: in libcurl viene allocato per default un buffer di 16 KB, mentre nell'utilità curl di 100 KB, ma questa dimensione cambia in base al valore del parametro "—limit-rate".

Daniel Stenberg, l'autore del progetto, ha menzionato che la vulnerabilità è rimasta inosservata per 1315 giorni. È stato anche detto che il 41% delle vulnerabilità precedentemente scoperte in curl sarebbe probabilmente stato evitato se curl fosse stato scritto in un linguaggio che garantisce una gestione sicura della memoria, ma non sono previsti piani a breve termine per riscrivere curl in un altro linguaggio. Per aumentare la sicurezza della base di codice, si propone di ampliare gli strumenti per il testing del codice e di utilizzare in modo più attivo le dipendenze scritte in linguaggi di programmazione che garantiscono una gestione sicura della memoria. Si sta anche considerando la possibilità di sostituire gradualmente parti di curl con varianti scritte in linguaggi sicuri, come l'HTTP backend sperimentale Hyper, implementato nel linguaggio Rust.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster