Verktøyet for å hente og sende data over nettverket, curl, har fylt 25 år. I anledning denne begivenheten er det lansert en ny viktig versjon, cURL 8.0. Den første utgaven av den forrige versjonen, curl 7.x, ble laget i 2000, og siden den gang har kodebasen økt fra 17 til 155 tusen linjer med kode, antall kommandolinjealternativer er nå 249, og det er implementert støtte for 28 nettverksprotokoller, 13 kryptografiske biblioteker, 3 SSH-biblioteker og 3 HTTP/3-biblioteker. Prosjektets kildekode distribueres under Curl-lisensen (en variant av MIT-lisensen).
For HTTP/HTTPS gir verktøyet mulighet for fleksibel forming av nettverksforespørselen med spesifikasjon av parametere som Cookie, user_agent, referer og andre overskrifter. I tillegg til HTTPS, HTTP/1.x, HTTP/2.0 og HTTP/3, støtter verktøyet sending av forespørsel ved bruk av SMTP, IMAP, POP3, SSH, Telnet, FTP, SFTP, SMB, LDAP, RTSP, RTMP og andre nettverksprotokoller. Samtidig utvikles biblioteket libcurl, som gir API for å bruke alle funksjonene i curl i programmer skrevet i språk som C, Perl, PHP, Python.
Den nye utgaven, cURL 8.0, inneholder ikke radikale nyvinninger eller API- og ABI-kompatibilitetsbrudd. Numreingen har blitt endret for å markere 25-årsjubileet til prosjektet og endelig slippe den andre sifferet i versjonen, som har blitt akkumulert i mer enn 22 år.
I den nye versjonen er 6 sårbarheter rettet opp i håndtererne for protokollene TELNET, FTP, SFTP, GSS, SSH, HSTS, hvorav 5 er vurdert som ubetydelige, mens en har et moderat sikkerhetsnivå (CVE-2023-27535, mulighet for å gjenbruke et tidligere opprettet FTP-forbindelse med andre parametere, inkludert ved mismatch av brukernavn). Blant endringene som ikke er relatert til fiksing av sårbarheter og feil, ble det bare merket opphør av støtten for bygging på systemer som mangler fungerende 64-bits datatyper (for bygging er det nå krav om tilstedeværelse av typen "long long").
Kort tid etter utgivelsen av 8.0.0 ble versjon 8.0.1 utgitt med en rettelse for feil som ble oppdaget umiddelbart etterfølgende, som førte til krasj i enkelte testscenarier.
Kilde: opennet.ru
