È stato rilasciato GNU Wget 1.25, un programma per automatizzare il download di file utilizzando i protocolli HTTP/HTTPS e FTP/FTPS. Questo strumento supporta funzionalità come la ripresa di download interrotti, il mirroring di siti web con filtraggio dei dati scaricati tramite maschere, la conversione dei link all'interno dei documenti, la gestione dei cookie e l'aggiornamento solo dei file modificati. Il codice del progetto è scritto in C e distribuito con licenza GPLv3.
Nella nuova versione:
- È stata riscritta l'analisi di una parte dell'URL con informazioni sul nome utente (protocol://userinfo@host:port/path). In precedenza, wget gestiva erroneamente il carattere ‘;’ durante l'analisi dell'userinfo, il che portava a una vulnerabilità (CVE-2024-38428) poiché parte dei dati dell'userinfo poteva essere elaborata come nome host. Ad esempio, un nome utente ‘attackerhost;’ nell'URL ‘ftp://attackerhost;@host’ portava all'accesso all'host ‘attackerhost’ invece che a ‘host’.
- Il supporto per i formati URL abbreviati su risorse HTTP e FTP (senza specifica esplicita del protocollo, ad esempio, «wget username:password@myserver») è stato interrotto. Questo formato era stato precedentemente dichiarato obsoleto e portava a una vulnerabilità CVE-2024-10524. Le informazioni su questa vulnerabilità non sono ancora state pubblicate, ma sembra essere una delle varianti del problema precedentemente menzionato, CVE-2024-38428.
- La lettura da file e dallo standard input (stdin) è stata aggiornata per utilizzare la modalità non bloccante. Questa modifica consente di trasmettere gradualmente attraverso il flusso di input URL utilizzando il comando «print_urls | wget -i-». In precedenza, wget leggevano i dati disponibili e chiudevano immediatamente il descriptor del file.
Inoltre, è stato rilasciato un'utilità per ottenere e inviare dati sulla rete — curl 8.11.0, che offre la possibilità di comporre richieste in modo flessibile impostando parametri come cookie, user_agent, referer e qualsiasi altro header. cURL supporta HTTP, HTTPS, HTTP/2.0, HTTP/3, SMTP, IMAP, POP3, SSH, Telnet, FTP, LDAP, RTSP, RTMP e altri protocolli di rete. Il codice del progetto è distribuito sotto la licenza Curl (una variante della licenza MIT).
Tra le novità in curl 8.11:
- È stata rimossa una vulnerabilità (CVE-2024-9681) che consentiva l'accesso a una risorsa tramite il protocollo http://, nonostante fossero presenti regole HSTS (HTTP Strict Transport Security) che imponevano l'uso esclusivo di HTTPS. Il problema si manifesta quando si ha il controllo sui sottodomini dell'host attaccato. Ad esempio, richiedendo l'host x.example.com, l'attaccante può influenzare i dati memorizzati nella cache HSTS manipolando l'intestazione HTTP «Strict-Transport-Security:». di dominio example.com.
- Annunciato il supporto stabile per il protocollo WebSocket.
- È stata fornita la possibilità di usare la modalità «—create-dirs» insieme all'opzione «—dump-header».
- Aggiunto il supporto per certificati in formato P12 nel backend crittografico basato su GnuTLS.
- Implementato il supporto per il meccanismo Early Data con GnuTLS, che consente al client di inviare dati prima del completamento della fase di negoziazione della connessione TLSv1.3.
- Aggiunta un'impostazione per disabilitare il protocollo IPFS.
- Aggiunto il supporto per la memorizzazione nella cache delle sessioni basata sul protocollo QUIC per GnuTLS e wolfSSL.
- Aggiunto il supporto per l'attivazione dinamica dell'estensione TLS ECH (Encrypted Client Hello), progettata per crittografare le informazioni relative ai parametri delle sessioni TLS, come il nome di dominio richiesto.
- È stata aggiunta la possibilità di utilizzare insieme le opzioni «—show-headers» e «—remote-header-name», così come l'opzione «—skip-existing» insieme a «—parallel».
Daniel Stenberg, autore del progetto curl, ha presentato un'iniziativa per mantenere le versioni LTS (Rock-solid), con aggiornamenti per la correzione di gravi errori e vulnerabilità che saranno pubblicati per almeno 5 anni. La prima versione LTS annunciata è il ramo 8.9.x, per il quale è già stato rilasciato un aggiornamento correttivo 8.9.2 che risolve due vulnerabilità. L'accesso agli aggiornamenti LTS è riservato ai clienti che hanno stipulato un contratto di supporto.
Il codice delle versioni LTS continuerà a essere distribuito sotto la precedente licenza Curl (versione MIT), ma su richiesta è prevista la possibilità di fornirlo sotto una licenza commerciale separata. I fondi raccolti saranno utilizzati per mantenere il progetto e finanziare gli sviluppatori. Nuove versioni LTS sono pianificate ogni 8-24 mesi. L'uso del ramo LTS permetterà di ottenere una base stabile, priva della probabilità di modifiche regressivi.
Fonte: opennet.ru
