L'utilità per l'invio e la ricezione di dati tramite rete curl ha compiuto 25 anni. In occasione di questo evento, è stata creata una nuova importante versione cURL 8.0. La prima versione della precedente linea curl 7.x è stata rilasciata nel 2000 e da allora la base del codice è aumentata da 17 a 155 mila righe di codice, il numero di opzioni da riga di comando è salito a 249, sono stati implementati 28 protocolli di rete, 13 librerie crittografiche, 3 librerie SSH e 3 librerie HTTP/3. Il codice del progetto è distribuito sotto la licenza Curl (una variante della licenza MIT).
Per HTTP/HTTPS, l'utilità offre la possibilità di formare in modo flessibile una richiesta di rete specificando parametri come Cookie, user_agent, referer e qualsiasi altro header. Oltre a HTTPS, HTTP/1.x, HTTP/2.0 e HTTP/3, l'utilità supporta l'invio di richieste utilizzando SMTP, IMAP, POP3, SSH, Telnet, FTP, SFTP, SMB, LDAP, RTSP, RTMP e altri protocolli di rete. Parallelamente, si sta sviluppando la libreria libcurl, che fornisce un'API per utilizzare tutte le funzioni di curl in programmi scritti in linguaggi come C, Perl, PHP, Python.
La nuova versione cURL 8.0 non introduce innovazioni radicali né cambiamenti incompatibili con l'API e l'ABI. Il cambio di numerazione è dovuto al desiderio di celebrare il 25° anniversario del progetto e finalmente abbandonare la seconda cifra della versione, che è accumulata da oltre 22 anni.
Nella nuova versione sono state risolte 6 vulnerabilità nei gestori dei protocolli TELNET, FTP, SFTP, GSS, SSH, HSTS, di cui 5 classificate come minori e una di livello moderato di pericolo (CVE-2023-27535, possibilità di riutilizzare una connessione FTP precedentemente creata con altri parametri, incluse le credenziali utente non corrispondenti). Tra le modifiche non legate alla risoluzione di vulnerabilità e errori, si segnala solo la cessazione del supporto per le compilazioni su sistemi privi di tipi di dati a 64 bit funzionanti (ora è richiesta la presenza del tipo "long long").
Poco dopo il rilascio di 8.0.0 è stata pubblicata la versione 8.0.1 con una correzione per un bug trovato in tempo reale, che portava a un arresto anomalo in alcuni scenari di test.
Fonte: opennet.ru
