Het hulpprogramma voor het verzenden en ontvangen van gegevens via het netwerk, curl, bestaat 25 jaar. Ter gelegenheid van deze gebeurtenis is er een nieuwe belangrijke tak cURL 8.0 gevormd. De eerste release van de vorige tak curl 7.x werd in 2000 uitgebracht en sindsdien is de codebase gegroeid van 17 tot 155.000 regels code, het aantal commandoregelopties is verhoogd tot 249, en er is ondersteuning voor 28 netwerksuggesties, 13 cryptografische bibliotheken, 3 SSH-bibliotheken en 3 HTTP/3-bibliotheken geĆÆmplementeerd. De code van het project wordt verspreid onder de Curl-licentie (een variant van de MIT-licentie).
Voor HTTP/HTTPS biedt het hulpprogramma de mogelijkheid om netwerkaanvragen flexibel samen te stellen, met het opgeven van parameters zoals Cookie, user_agent, referer en andere headers. Naast HTTPS, HTTP/1.x, HTTP/2.0 en HTTP/3, ondersteunt het hulpprogramma het verzenden van verzoeken met behulp van SMTP, IMAP, POP3, SSH, Telnet, FTP, SFTP, SMB, LDAP, RTSP, RTMP en andere netwerksuggesties. Tegelijkertijd ontwikkelt de bibliotheek libcurl zich, die een API biedt voor het aanroepen van alle curl-functies in programma's in talen zoals C, Perl, PHP, Python.
De nieuwe release cURL 8.0 bevat geen ingrijpende vernieuwingen of incompatibele veranderingen in de API en ABI. De wijziging in de nummering is te wijten aan de wens om het 25-jarig bestaan van het project te vieren en eindelijk de tweede versie van het versienummer te laten vervallen, die al meer dan 22 jaar is blijven hangen.
In de nieuwe versie zijn 6 kwetsbaarheden in de protocol-handlers van TELNET, FTP, SFTP, GSS, SSH, HSTS verholpen, waarvan 5 als minder ernstig zijn aangeduid en ƩƩn met een gematigd risico (CVE-2023-27535, de mogelijkheid om een eerder gemaakte FTP-verbinding met andere parameters opnieuw te gebruiken, ook bij verschillende gebruikersreferenties). Van de wijzigingen die niet verband houden met het verhelpen van kwetsbaarheden en fouten, is alleen de beƫindiging van de ondersteuning voor assemblage op systemen waarvoor geen werkende 64-bits datatypes beschikbaar zijn, opgemerkt (voor assemblage is nu het type 'long long' vereist).
Kort na de release van 8.0.0 werd versie 8.0.1 uitgebracht met een correctie voor een onlangs ontdekte fout die leidde tot een crash in sommige testscenario's.
Bron: opennet.ru
