új verzió az adatátvitel és -fogadás hálózaton keresztül — , amely lehetővé teszi a lekérés rugalmas megformálását olyan paraméterek megadásával, mint a cookie, user_agent, referer és bármilyen egyéb fejlécek. A cURL támogatja a HTTP, HTTPS, HTTP/2.0, HTTP/3, SMTP, IMAP, POP3, Telnet, FTP, LDAP, RTSP, RTMP és egyéb hálózati protokollokat. Ezzel egy időben megjelent a párhuzamosan fejlesztett libcurl könyvtár frissítése, amely API-t biztosít a cURL összes funkciójának alkalmazására olyan programokban, mint a C, Perl, PHP, Python.
Az új kiadásban a „—retry-all-errors” opció került bevezetésre, amely lehetővé teszi a műveletek ismételt végrehajtását bármilyen hiba esetén, és két sebezhetőséget javítottak ki:
- lehetővé teszi, hogy a helyi fájl felülíródjon a rendszerben, amikor egy támadó által irányított szerverhez fordulunk. A probléma csak a „-J” („—remote-header-name”) és „-i” („—head”) opciók egyidejű használata esetén jelentkezik. A „-J” opció lehetővé teszi, hogy a fájlt a fejlécben megadott névvel mentse el.
A „Content-Disposition” fejlécnek megfelelően. Ha már létezik egy ilyen nevű fájl, a cURL alapértelmezés szerint megtagadja a felülírást, de az „-i” opcióval a vizsgálat logikája megbomlik, és a fájl felülíródik (a vizsgálat a válasz törzsének fogadása során történik, de az „-i” opcióval először a HTTP-fejlécek kerülnek kiírásra, amelyek a válasz törzsének feldolgozása előtt már elmentésre kerülnek). A fájlba csak a HTTP-fejlécek íródnak, de a szerver önkényes adatokat adhat vissza a fejlécek helyett, és ezek is elmentésre kerülnek. - ez a DNS szerverhez jelszavak (Basic, Digest, NTLM stb.) részleges kiszivárgásához vezethet. Ha a jelszóban '@' karakter szerepel, amely egyben a jelszó elválasztója az URL-ben, akkor a HTTP-átirányítás bekapcsolásakor a curl a jelszó '@' utáni részét küldi el a domain mellett a név meghatározásához. Például, ha a jelszó 'passw@rd123' és a felhasználónév 'dan', a curl az 'https://dan:passw@rd123@example.com/path' URL-t generálja ahelyett, hogy 'https://dan:passwrd123@example.com/path' lenne, és a 'rd123@example.com' hostot próbálja feloldani a 'example.com' helyett.
A probléma a relatív HTTP-átirányítások támogatásának bekapcsolásakor merül fel (a CURLOPT_FOLLOWLOCATION révén kikapcsolva). Hagyományos DNS használata esetén a DNS-szolgáltató és a támadó, aki képes a tranzit hálózati forgalom lehallgatására, megtudhatja a jelszó egy részét (még akkor is, ha az eredeti kérés HTTPS-en történt, mivel a DNS-forgalom nem titkosított). A DNS-over-HTTPS (DoH) alkalmazása esetén a szivárgás a DoH-szolgáltatóra korlátozódik.
Forrás: opennet.ru
