Die Veröffentlichung von GNU Wget 1.25 ist jetzt verfügbar, ein Programm zur Automatisierung des Herunterladens von Dateien über die Protokolle HTTP/HTTPS und FTP/FTPS. Die Utility unterstützt Funktionen wie das Wiederaufnehmen unterbrochener Downloads, das Spiegeln von Websites mit Filterung der heruntergeladenen Daten über Masken, die Umwandlung von Links innerhalb von Dokumenten, das Setzen von Cookies und das Aktualisieren nur geänderter Dateien. Der Code des Projekts ist in C geschrieben und wird unter der Lizenz GPLv3 verbreitet.
In der neuen Version:
- Der Parser für einen Teil der URL mit Benutzerinformationen (protocol://userinfo@host:port/path) wurde überarbeitet. Zuvor behandelte wget das Zeichen „;“ beim Parsen von userinfo falsch, was zu einer Sicherheitsanfälligkeit (CVE-2024-38428) führte, da Teile der userinfo möglicherweise als Hostname behandelt wurden. Beispielsweise führte der Benutzername „attackerhost;“ in der URL „ftp://attackerhost;@host“ dazu, dass auf den Host „attackerhost“ anstelle von „host“ zugegriffen wurde.
- Die Unterstützung für das verkürzte Format von URL-Links zu HTTP- und FTP-Ressourcen (ohne explizite Angabe des Protokolls, z. B. „wget username:password@myserver“) wurde eingestellt, da es zuvor als veraltet gilt und zu einer Sicherheitsanfälligkeit CVE-2024-10524 geführt hat. Details zur Sicherheitsanfälligkeit werden derzeit nicht veröffentlicht, jedoch scheint sie eine der Varianten des zuvor erwähnten Problems CVE-2024-38428 zu sein.
- Das Lesen von Dateien und vom Standard-Stream (stdin) wurde auf den Einsatz eines nicht-blockierenden Modus umgestellt. Diese Änderung ermöglicht die schrittweise Übertragung von Links über den Eingabestrom, indem der Befehl „print_urls | wget -i-“ verwendet wird. Zuvor las wget die vorhandenen Daten und schloss sofort den Dateideskriptor.
Darüber hinaus kann die Veröffentlichung des Tools zum Abrufen und Senden von Daten über das Netzwerk — curl 8.11.0 erwähnt werden, das die flexible Erstellung von Anfragen ermöglicht, wobei Parameter wie Cookie, User-Agent, Referer und andere Header angegeben werden können. cURL unterstützt HTTP, HTTPS, HTTP/2.0, HTTP/3, SMTP, IMAP, POP3, SSH, Telnet, FTP, LDAP, RTSP, RTMP und andere Netzwerkprotokolle. Der Projektcode wird unter der Curl-Lizenz (eine Variante der MIT-Lizenz) verteilt.
Zu den Änderungen in curl 8.11:
- Eine Sicherheitsanfälligkeit (CVE-2024-9681) wurde behoben, die es ermöglicht, auf Ressourcen über das Protokoll http:// zuzugreifen, trotz bestehender HSTS-Regeln (HTTP Strict Transport Security), die nur die Verwendung von HTTPS vorschreiben. Das Problem tritt auf, wenn Kontrolle über die Subdomains des angegriffenen Hosts vorhanden ist. Beispielsweise kann ein Angreifer beim Zugriff auf den Host x.example.com durch Manipulation des HTTP-Headers „Strict-Transport-Security:“ die HSTS-Cachedaten für Nach Abschluss des Transfers kann die Domain auf unser Hosting gerichtet werden. example.com.
- Die stabile Unterstützung des WebSocket-Protokolls wurde angekündigt.
- Die Möglichkeit zur Nutzung des Modus „—create-dirs“ zusammen mit der Option „—dump-header“ wurde bereitgestellt.
- Der GnuTLS-basierte Krypto-Backend hat die Unterstützung für Zertifikate im P12-Format hinzugefügt.
- Bei der Verwendung von GnuTLS wurde die Unterstützung des Early Data-Mechanismus implementiert, der es dem Client ermöglicht, Daten vor Abschluss der TLSv1.3-Handshake-Phase zu senden.
- Eine Einstellung zum Deaktivieren des IPFS-Protokolls wurde hinzugefügt.
- Für GnuTLS und wolfSSL wird die Unterstützung für die Sitzungscaching auf der Basis des QUIC-Protokolls hinzugefügt.
- Die Unterstützung für die dynamische Aktivierung der TLS-Erweiterung ECH (Encrypted Client Hello), die zur Verschlüsselung von Informationen über TLS-Handshake-Parameter wie den angeforderten Domainnamen dient, wurde hinzugefügt.
- Es wurde die Möglichkeit hinzugefügt, die Optionen „—show-headers“ und „—remote-header-name“ gemeinsam zu verwenden, sowie die Nutzung der Option „—skip-existing“ zusammen mit „—parallel“.
Daniel Stenberg, der Autor des Projekts curl, hat eine Initiative zur Unterstützung von LTS-Versionen (Rock-solid) vorgestellt. Aktualisierungen zur Behebung von schwerwiegenden Fehlern und Sicherheitsanfälligkeiten werden mindestens über einen Zeitraum von 5 Jahren veröffentlicht. Das erste LTS-Projekt ist der Branch 8.9.x, für den bereits ein Korrektur-Release 8.9.2 mit der Behebung von zwei Sicherheitsanfälligkeiten erstellt wurde. Der Zugang zu LTS-Updates steht nur Kunden zur Verfügung, die einen Supportvertrag abgeschlossen haben.
Der Code der LTS-Versionen wird weiterhin unter der bisherigen Curl-Lizenz (MIT-Variante) verbreitet, jedoch besteht auf gesonderte Anfrage die Möglichkeit, ihn unter einer separaten kommerziellen Lizenz zu beziehen. Die erhaltenen Mittel werden zur Unterstützung des Projekts und zur Finanzierung der Entwickler verwendet. Neue LTS-Zweige sollen alle 8-24 Monate gebildet werden. Die Nutzung des LTS-Zweigs ermöglicht eine stabile Basis, die von der Wahrscheinlichkeit regressiver Änderungen befreit ist.
Quelle: opennet.ru
