curl 7.71.0 lanzado, corrixindo dúas vulnerabilidades

Dispoñible nova versión da utilidade para recibir e enviar datos pola rede - curl 7.71.0, que ofrece a posibilidade de formular unha solicitude de forma flexible especificando parámetros como cookie, user_agent, referer e calquera outro encabezado. cURL admite HTTP, HTTPS, HTTP/2.0, HTTP/3, SMTP, IMAP, POP3, Telnet, FTP, LDAP, RTSP, RTMP e outros protocolos de rede. Ao mesmo tempo, lanzouse unha actualización para a biblioteca libcurl, que se está a desenvolver en paralelo, que proporciona unha API para usar todas as funcións curl en programas en linguaxes como C, Perl, PHP, Python.

A nova versión engade a opción "--retry-all-errors" para reintentar as operacións se se produce algún erro e corrixe dúas vulnerabilidades:

  • Vulnerabilidade CVE-2020-8177 permite sobrescribir un ficheiro local no sistema ao acceder a un servidor controlado polo atacante. O problema só aparece cando as opcións “-J” (“–remote-header-name”) e “-i” (“-head”) se usan simultáneamente. A opción "-J" permítelle gardar o ficheiro co nome especificado na cabeceira
    "Contido-Disposición". Se xa existe un ficheiro co mesmo nome, o programa curl normalmente négase a realizar unha sobrescritura, pero se a opción "-i" está presente, a lóxica de verificación rompe e o ficheiro sobrescríbese (a verificación realízase na fase de recibir o corpo da resposta, pero coa opción "-i" as cabeceiras HTTP móstranse primeiro e teñen tempo para gardarse antes de que o corpo de resposta comece a procesarse). No ficheiro só se escriben cabeceiras HTTP, pero o servidor pode enviar datos arbitrarios en lugar de cabeceiras e escribiranse.

  • Vulnerabilidade CVE-2020-8169 pode provocar unha fuga ao servidor DNS dalgúns dos contrasinais de acceso ao sitio (Basic, Digest, NTLM, etc.). Ao usar o símbolo "@" nun contrasinal, que tamén se usa como separador de contrasinal no URL, cando se activa unha redirección HTTP, curl enviará a parte do contrasinal despois do símbolo "@" xunto co dominio para resolver o nome. Por exemplo, se proporciona o contrasinal "passw@rd123" e o nome de usuario "dan", curl xerará o URL "https://dan:passw@[protexido por correo electrónico]/ruta" en lugar de "https://dan:passw%[protexido por correo electrónico]/path" e enviará unha solicitude para resolver o host "[protexido por correo electrónico]" en lugar de "example.com".

    O problema aparece cando se activa a compatibilidade con redirectores HTTP relativos (desactivada mediante CURLOPT_FOLLOWLOCATION). Se se utiliza DNS tradicional, a información sobre parte do contrasinal pode ser obtida polo provedor de DNS e por un atacante que teña a capacidade de interceptar o tráfico da rede de tránsito (aínda que a solicitude orixinal fose vía HTTPS, xa que o tráfico DNS non está cifrado). Cando se usa DNS-over-HTTPS (DoH), a fuga está limitada ao operador DoH.

Fonte: opennet.ru

Engadir un comentario