Podatności libcurl
25 znanych podatności CVE w libcurl, przetłumaczonych i ocenionych.
- CVE-2022-27782Wysokie
W bibliotece libcurl występuje problem z ponownym używaniem wcześniej utworzonych połączeń, nawet gdy zmieniono opcje związane z TLS lub SSH, które powinny zabraniać ponownego użycia. Niektóre ustawienia TLS i SSH nie były uwzględnione w sprawdzaniu zgodności konfiguracji, co ułatwiało dopasowanie.
- CVE-2022-27781Wysokie
libcurl oferuje opcję `CURLOPT_CERTINFO`, która pozwala aplikacjom na żądanie szczegółów dotyczących łańcucha certyfikatów serwera. Z powodu błędnej funkcji, złośliwy serwer może spowodować, że libcurl zbudowany z NSS utknie w nieskończonej pętli podczas próby pobrania tych informacji.
- CVE-2021-22926Wysokie
Aplikacje korzystające z libcurl mogą żądać użycia konkretnego certyfikatu klienta podczas transferu. W przypadku, gdy libcurl jest zbudowany z użyciem natywnej biblioteki TLS macOS Secure Transport, złośliwy użytkownik może podmienić certyfikat, co prowadzi do wysłania niewłaściwego certyfikatu klienta w procesie handshake TLS.
- CVE-2017-1000254Wysokie
libcurl może odczytywać dane poza przydzielonym buforem pamięci podczas korzystania z FTP. Błąd w analizatorze ciągów dla nazwy katalogu może prowadzić do braku dodania bajtu NUL na końcu bufora, co skutkuje możliwością odczytu danych spoza przydzielonego obszaru pamięci.
- CVE-2016-5421Wysokie
Podatność typu use-after-free w libcurl przed wersją 7.50.1 pozwala atakującym na kontrolowanie, która konekcja jest używana, lub potencjalnie na wywołanie innych nieokreślonych skutków za pomocą nieznanych wektorów.
- CVE-2016-0755Wysokie
Funkcja ConnectionExists w lib/url.c w libcurl przed wersją 7.47.0 nieprawidłowo ponownie wykorzystuje połączenia proxy uwierzytelnione za pomocą NTLM, co może umożliwić zdalnym atakującym uwierzytelnienie jako inni użytkownicy poprzez odpowiednie żądanie.
- CVE-2025-4947Średnie
libcurl przypadkowo pomija weryfikację certyfikatu dla połączeń QUIC, gdy łączy się z hostem podanym jako adres IP w URL. W związku z tym nie wykrywa oszustów ani ataków man-in-the-middle.
- CVE-2025-5399Średnie
Z powodu błędu w kodzie WebSocket w libcurl, złośliwy serwer może wysłać specjalnie spreparowany pakiet, który powoduje, że libcurl wpada w nieskończoną pętlę busy-loop. Aplikacja nie może uciec z tej pętli inaczej niż przez zabicie wątku/procesu. Może to być użyte do DoS.
- CVE-2024-6874Średnie
Funkcja curl_url_get() w libcurl oferuje konwersje punycode do i z IDN. Przy konwersji nazwy o dokładnie 256 bajtach, libcurl czyta poza buforem na stosie, gdy używany jest backend IDN macidn.
- CVE-2025-5025Średnie
libcurl obsługuje przypinanie klucza publicznego certyfikatu serwera dla transferów HTTPS. Z powodu pominięcia, sprawdzenie to nie jest wykonywane podczas łączenia z QUIC dla HTTP/3, gdy backend TLS to wolfSSL. Dokumentacja mówi, że opcja działa z wolfSSL, ale nie precyzuje, że nie działa dla QUIC.
- CVE-2024-6197Wysokie
Parser ASN1 w libcurl zawiera funkcję utf8asn1str() używaną do parsowania łańcucha UTF-8 ASN.1. Może on wykryć nieprawidłowe pole i zwrócić błąd. Niestety, podczas tego procesu wywołuje również free() na 4-bajtowym buforze lokalnym na stosie. Większość nowoczesnych implementacji malloc wykrywa ten błąd i natychmiast przerywa działanie.
- CVE-2024-2398Średnie
Podatność w bibliotece libcurl powoduje wyciek pamięci podczas obsługi push HTTP/2. Gdy aplikacja zezwala na push serwera, a liczba nagłówków przekracza limit 1000, libcurl przerywa push, ale nie zwalnia poprzednio zaalokowanych nagłówków.
- CVE-2026-9079Krytyczne
W bibliotece libcurl wykryto błąd polegający na tym, że polecenie wyczyszczenia danych uwierzytelniających proxy nie było wykonywane. Stare dane uwierzytelniające pozostawały w pamięci i były używane w kolejnych transferach, które nie powinny mieć do nich dostępu.
- CVE-2026-8927Krytyczne
Podatność w bibliotece libcurl powoduje wyciek nagłówka autoryzacji proxy między żądaniami. Gdy uchwyt libcurl jest ponownie używany do sekwencyjnych transferów z konfiguracją proxy opartą na zmiennych środowiskowych, stan uwierzytelnienia proxy nie jest czyszczony między żądaniami. W rezultacie nagłówek `Proxy-Authorization:` przeznaczony dla jednego proxy może zostać wysłany do innego.
- CVE-2026-11856Krytyczne
Podatność w bibliotece libcurl powoduje, że przy ponownym użyciu uchwytu do transferów HTTP z uwierzytelnianiem Digest, nagłówek Authorization przeznaczony dla pierwotnego hosta jest błędnie przekazywany do innego hosta.
- CVE-2026-11564Krytyczne
Podatność w bibliotece libcurl dotyczy puli połączeń, która może przechowywać połączenia z domyślnym zaufaniem do natywnych certyfikatów CA. Gdy aplikacja przełączy uchwyt na niestandardowe certyfikaty CA, stare połączenie może być nadal używane z pierwotnym zaufaniem.
- CVE-2026-10536Krytyczne
W bibliotece libcurl wykryto podatność use-after-free, występującą gdy aplikacja konfiguruje drzewo zależności strumieni HTTP/2 za pomocą opcji CURLOPT_STREAM_DEPENDS lub CURLOPT_STREAM_DEPENDS_E, następnie wywołuje curl_easy_reset(), a na końcu curl_easy_cleanup(). Podczas końcowego czyszczenia libcurl próbuje uzyskać dostęp i zmodyfikować wewnętrzną strukturę, która została już zwolniona podczas resetowania.
- CVE-2017-1000257Krytyczne
Podatność w libcurl związana z nieprawidłowym przetwarzaniem odpowiedzi IMAP FETCH, gdy rozmiar danych wynosi zero bajtów. Funkcja deliver-data może próbować odczytać dane z bufora, który nie jest poprawnie zakończony, co prowadzi do potencjalnego odczytu pamięci poza przydzielonym obszarem.
- CVE-2016-7167Krytyczne
Wielokrotne przepełnienia całkowite w funkcjach (1) curl_escape, (2) curl_easy_escape, (3) curl_unescape oraz (4) curl_easy_unescape w libcurl przed wersją 7.50.3 mogą umożliwić atakującym wywołanie nieokreślonego wpływu poprzez ciąg o długości 0xffffffff, co prowadzi do przepełnienia bufora w stercie.
- CVE-2026-9547Wysokie
Podatność w libcurl umożliwia akceptację niezaufanego serwera podczas transferów SCP lub SFTP, gdy używane jest wywołanie zwrotne CURLOPT_SSH_KEYFUNCTION. Serwer może przedstawić klucz hosta innego typu niż zapisany w pliku known_hosts, a mechanizm wywołania zwrotnego nie wymusza odrzucenia niezgodności, co pozwala na udane połączenie bez ostrzeżenia.
- CVE-2026-9546Wysokie
Podatność w bibliotece libcurl powoduje, że nagłówek HTTP `Referer:` utrzymuje się nawet po jawnym wyczyszczeniu. Zgodnie z dokumentacją, przekazanie NULL do opcji `CURLOPT_REFERER` powinno wyłączyć nagłówek, ale opcja ta nie czyści wewnętrznego stanu. W rezultacie poprzednia wartość referera jest błędnie ponownie używana i wysyłana w kolejnych żądaniach, co może prowadzić do wycieku poufnych informacji do niezamierzonych serwerów.
- CVE-2026-9545Wysokie
W bibliotece libcurl wykryto podatność polegającą na wysyłaniu danych drugiego żądania przed zweryfikowaniem certyfikatu SSL/TLS nowego połączenia. Problem występuje, gdy używane jest buforowanie sesji SSL oraz opcja wczesnego wysyłania danych (early data), a serwer docelowy został podmieniony przez atakującego.
- CVE-2026-9080Wysokie
Wywołanie funkcji `curl_easy_pause()` wewnątrz callbacka `CURLMOPT_SOCKETFUNCTION` opartego na zdarzeniach powoduje podatność use-after-free. Libcurl próbuje zapisać flagę za pomocą wiszącego wskaźnika do struktury, tuż po zwolnieniu pamięci tego wskaźnika.
- CVE-2026-8932Wysokie
Biblioteka libcurl ponownie wykorzystywała wcześniej utworzone połączenia, nawet gdy zmieniono opcje konfiguracji mTLS związane z certyfikatami klienta, które powinny uniemożliwić ponowne użycie. Konkretnie, opcje dotyczące klucza prywatnego nie były sprawdzane przy dopasowywaniu konfiguracji.
- CVE-2026-8458Średnie
Biblioteka libcurl może w pewnych okolicznościach ponownie użyć nieprawidłowego połączenia podczas żądań uwierzytelniania Negotiate, nawet gdy są one skonfigurowane dla różnych usług. Błąd logiczny w kodzie zarządzania pulą połączeń powoduje, że żądanie aplikacji może błędnie wykorzystać istniejące połączenie uwierzytelnione dla innej usługi.

