A fost lansată versiunea GNU Wget 1.25, un program pentru automatizarea descărcării fișierelor folosind protocoalele HTTP/HTTPS și FTP/FTPS. Utilitarul suportă funcționalități precum reluarea descărcărilor întrerupte, oglindirea site-urilor cu filtrarea datelor descărcate prin măști, transformarea linkurilor din documente, stabilirea cookie-urilor și actualizarea doar a fișierelor modificate. Codul proiectului este scris în limbajul C și este distribuit sub licența GPLv3.
În noua versiune:
- A fost refăcută analiza unei părți a URL-ului cu informațiile despre numele de utilizator (protocol://userinfo@host:port/path). Anterior, wget analiza userinfo greșit, tratând caracterul „;” în mod eronat, ceea ce ducea la o vulnerabilitate (CVE-2024-38428), deoarece o parte a datelor userinfo putea fi interpretată ca numele gazdei. De exemplu, numele de utilizator „attackerhost;” în URL-ul „ftp://attackerhost;@host” ducea la accesarea gazdei „attackerhost”, în loc de „host”.
- A fost oprită suportul pentru formatul scurt de linkuri URL pentru resurse HTTP și FTP (fără specificarea explicită a protocolului, de exemplu, „wget username:password@myserver”), care anterior fusese declarat învechit și ducea la vulnerabilitatea CVE-2024-10524. Informațiile despre vulnerabilitate nu sunt deocamdată dezvăluite, dar se pare că face parte din varianta problemei menționate anterior, CVE-2024-38428.
- Citirile din fișiere și fluxul standard (stdin) au fost adaptate pentru a utiliza modul non-blocant. Această modificare permite transmiterea treptată a linkurilor prin fluxul de intrare, folosind comanda „print_urls | wget -i-“. Anterior, wget citea datele existente și închidea imediat descriptorul de fișier.
De asemenea, merită menționat lansarea utilitarului pentru obținerea și trimiterea datelor prin rețea — curl 8.11.0, care oferă posibilitatea de a forma flexibil cereri cu parametrii specifici, precum cookie, user_agent, referer și orice alte antete. cURL suportă protocoale de rețea precum HTTP, HTTPS, HTTP/2.0, HTTP/3, SMTP, IMAP, POP3, SSH, Telnet, FTP, LDAP, RTSP, RTMP și altele. Codul proiectului este distribuit sub licența Curl (variantă a licenței MIT).
Printre modificările din curl 8.11:
- A fost remediată vulnerabilitatea (CVE-2024-9681), care permite accesul la resurse prin protocolul http://, în ciuda existenței regulilor HSTS (HTTP Strict Transport Security), care impun utilizarea exclusivă a HTTPS. Problema apare în cazul în care atacatorul are control asupra subdomeniilor gazdei atacate. De exemplu, prin solicitarea gazdei x.example.com, atacatorul poate influența datele din cache-ul HSTS prin manipularea antetului HTTP "Strict-Transport-Security:". domeniu example.com.
- A fost declarată suportul stabil pentru protocolul WebSocket.
- A fost oferită posibilitatea utilizării opțiunii "—create-dirs" împreună cu opțiunea "—dump-header".
- În backend-ul criptografic bazat pe GnuTLS a fost adăugată suportul pentru certificate în format P12.
- Pentru GnuTLS a fost implementat suportul pentru mecanismul Early Data, care permite clientului să trimită date înainte de finalizarea etapei de negociere a conexiunii TLSv1.3.
- A fost adăugată o setare pentru dezactivarea protocolului IPFS.
- Pentru GnuTLS și wolfSSL a fost adăugat suportul pentru caching-ul sesiunilor bazat pe protocolul QUIC.
- A fost adăugat suport pentru activarea dinamică a extensiei TLS ECH (Encrypted Client Hello), destinat criptării informațiilor despre parametrii sesiunilor TLS, cum ar fi numele de domeniu solicitat.
- A fost adăugată posibilitatea de a utiliza simultan opțiunile "—show-headers" și "—remote-header-name", precum și utilizarea opțiunii "—skip-existing" împreună cu "—parallel".
Daniel Stenberg, autorul proiectului curl, a prezentat inițiativa de a menține versiuni LTS (Rock-solid), actualizări pentru remedierea erorilor grave și a vulnerabilităților pentru care vor fi publicate timp de cel puțin 5 ani. Prima versiune LTS anunțată este ramura 8.9.x, pentru care a fost deja format un release corectiv 8.9.2 care corectează două vulnerabilități. Accesul la actualizările LTS este oferit doar clienților care au încheiat un contract de suport.
Codul versiunilor LTS continuă să fie distribuit sub aceeași licență Curl (varianta MIT), dar la cerere separată este prevăzută posibilitatea furnizării sub o licență comercială separată. Fondurile obținute vor fi folosite pentru întreținerea proiectului și finanțarea dezvoltatorilor. Se planifică formarea de noi ramuri LTS la fiecare 8-24 de luni. Utilizarea ramurii LTS va oferi o bază stabilă, lipsită de riscul apariției modificărilor regressive.
Sursa: opennet.ro
