Se ha lanzado la versión GNU Wget 1.25, un programa para automatizar la descarga de archivos utilizando los protocolos HTTP/HTTPS y FTP/FTPS. La utilidad admite funciones como reanudación de descargas interrumpidas, espejo de sitios con filtrado de datos descargados mediante máscaras, conversión de enlaces dentro de documentos, gestión de cookies y actualización solo de archivos modificados. El código del proyecto está escrito en C y se distribuye bajo la licencia GPLv3.
En la nueva versión:
- Se ha reescrito el análisis de una parte de la URL que contiene información sobre el nombre de usuario (protocol://userinfo@host:port/path). Anteriormente, wget no procesaba correctamente el carácter «;» al analizar userinfo, lo que generaba una vulnerabilidad (CVE-2024-38428) porque parte de los datos de userinfo podía ser procesada como el nombre del host. Por ejemplo, el nombre de usuario «attackerhost;» en la URL «ftp://attackerhost;@host» conducía a acceder al host «attackerhost» en lugar de «host».
- Se ha descontinuado el soporte para el formato abreviado de enlaces URL para recursos HTTP y FTP (sin especificar explícitamente el protocolo, por ejemplo, «wget username:password@myserver»), el cual había sido declarado obsoleto y causaba la vulnerabilidad CVE-2024-10524. La información sobre la vulnerabilidad aún no se divulga, pero parece ser una de las variantes del problema mencionado anteriormente CVE-2024-38428.
- Las lecturas desde archivos y el flujo estándar (stdin) se han trasladado al uso de un modo no bloqueante. Este cambio permite transferir gradualmente enlaces a través del flujo de entrada utilizando el comando «print_urls | wget -i-«. Anteriormente, wget leía los datos disponibles y cerraba de inmediato el descriptor de archivo.
Además, se ha lanzado la utilidad para obtener y enviar datos a través de la red — curl 8.11.0, que ofrece la capacidad de formar solicitudes de manera flexible con parámetros como cookies, user_agent, referer y cualquier otro encabezado. cURL es compatible con HTTP, HTTPS, HTTP/2.0, HTTP/3, SMTP, IMAP, POP3, SSH, Telnet, FTP, LDAP, RTSP, RTMP y otros protocolos de red. El código del proyecto se distribuye bajo la licencia Curl (una variación de la licencia MIT).
Entre los cambios en curl 8.11:
- Se ha corregido una vulnerabilidad (CVE-2024-9681) que permite acceder a un recurso a través del protocolo http://, a pesar de la existencia de reglas HSTS (HTTP Strict Transport Security) que exigen el uso exclusivo de HTTPS. El problema se manifiesta cuando hay control sobre los subdominios del host atacado. Por ejemplo, al solicitar el host x.example.com, el atacante puede, mediante manipulaciones con el encabezado HTTP «Strict-Transport-Security:», afectar los datos en caché de HSTS para dominio example.com.
- Se ha declarado la soporte estable para el protocolo WebSocket.
- Se ha añadido la opción de usar el modo «—create-dirs» junto con la opción «—dump-header».
- Se ha añadido soporte para certificados en formato P12 en el backend criptográfico basado en GnuTLS.
- Al utilizar GnuTLS, se ha implementado el soporte para el mecanismo Early Data, que permite al cliente enviar datos antes de completar la fase de negociación de la conexión TLSv1.3.
- Se ha añadido una configuración para deshabilitar el protocolo IPFS.
- Para GnuTLS y wolfSSL, se ha añadido soporte para el almacenamiento en caché de sesiones basado en el protocolo QUIC.
- Se ha añadido soporte para habilitar dinámicamente la extensión TLS ECH (Encrypted Client Hello), que está diseñada para cifrar la información sobre los parámetros de las sesiones TLS, como el nombre de dominio solicitado.
- Se ha añadido la posibilidad de combinar las opciones «—show-headers» y «—remote-header-name», así como el uso de la opción «—skip-existing» junto con «—parallel».
Daniel Stenberg, autor del proyecto curl, ha presentado una iniciativa para mantener versiones LTS (Rock-solid), actualizaciones que corrigen errores graves y vulnerabilidades que se publicarán durante al menos 5 años. El primer proyecto LTS declarado es la rama 8.9.x, para la cual ya se ha formado un lanzamiento correctivo 8.9.2 que soluciona dos vulnerabilidades. El acceso a las actualizaciones LTS se proporciona solo a los clientes que han firmado un contrato de soporte.
El código de las versiones LTS sigue distribuyéndose bajo la anterior licencia Curl (variante MIT), pero a petición se puede facilitar bajo una licencia comercial distinta. Los fondos recaudados se utilizarán para mantener el proyecto y financiar a los desarrolladores. Se planea formar nuevas ramas LTS cada 8-24 meses. Utilizar una rama LTS permitirá obtener una base estable, libre de la posibilidad de que ocurran cambios regresivos.
Fuente: opennet.ru
