L'utility per ricevere e inviare dati sulla rete curl ha compiuto 25 anni. In onore di questo evento è stata formata una nuova e significativa versione cURL 8.0. La prima versione della precedente branca 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 della riga di comando è arrivato a 249, è stato implementato il supporto per 28 protocolli di rete, 13 librerie crittografiche, 3 librerie SSH e 3 librerie HTTP/3. Il codice del progetto è distribuito sotto la licenza Curl (versione della licenza MIT).
Per HTTP/HTTPS, l'utility offre la possibilità di formulare richieste di rete in modo flessibile, impostando parametri come Cookie, user_agent, referer e altri header. Oltre a HTTPS, HTTP/1.x, HTTP/2.0 e HTTP/3, l'utility supporta l'invio di richieste utilizzando SMTP, IMAP, POP3, SSH, Telnet, FTP, SFTP, SMB, LDAP, RTSP, RTMP e altri protocolli di rete. Parallelamente, è in corso lo sviluppo della libreria libcurl, che offre un'API per utilizzare tutte le funzionalità di curl nei programmi scritti in linguaggi come C, Perl, PHP, Python.
La nuova versione cURL 8.0 non presenta novità radicali o cambiamenti incompatibili nell'API e nell'ABI. Il cambio di numerazione è dovuto al desiderio di commemorare il 25° anniversario del progetto e finalmente di azzerare il secondo numero della versione, che è accumulato da oltre 22 anni.
Nella nuova versione sono state eliminate 6 vulnerabilità nei gestori dei protocolli TELNET, FTP, SFTP, GSS, SSH, HSTS, di cui 5 sono classificate come minori e una è considerata di pericolo moderato (CVE-2023-27535, possibilità di riutilizzare una connessione FTP creata in precedenza con parametri diversi, incluso il non allineamento delle credenziali dell'utente). Tra le modifiche non correlate alla correzione di vulnerabilità o bug si segnala solo la cessazione del supporto per la compilazione su sistemi privi di tipi di dati a 64 bit funzionanti (per la compilazione ora è necessario avere il tipo 'long long').
Subito dopo il rilascio di 8.0.0 è stata rilasciata la versione 8.0.1 con una correzione dell'errore riscontrato a caldo, il quale portava a un crash in alcuni scenari di test.
Fonte: opennet.ru
