CVE-2026-92389
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 17 - wyżej niż 17% wszystkich znanych CVE
Streszczenie
Maszyna stanów TFTP w libcurl nie weryfikuje przejść stanów względem żądanego kierunku transferu, akceptując odpowiedzi otwierające serwera zarówno dla odczytu, jak i zapisu zamiennie. Złośliwy serwer TFTP może odpowiedzieć na żądanie pobrania w sposób wymuszający tryb transmisji, powodując że libcurl odczyta i wyśle dane ze wskaźnika CURLOPT_READDATA uchwytu, w tym dane pozostałe z wcześniejszych operacji, takich jak żądanie HTTP POST na ponownie użytym uchwycie.
Ocena ryzyka
Złośliwy serwer TFTP może spowodować wyciek danych z pamięci aplikacji, w tym danych z wcześniejszych operacji na tym samym uchwycie. Ryzyko dotyczy aplikacji używających TFTP i ponownie wykorzystujących uchwyty curl.
Rekomendacja
Zaktualizuj libcurl do wersji z poprawką. Unikaj ponownego używania uchwytów curl między operacjami TFTP a innymi transferami z danymi wrażliwymi.
Inne podatności w libcurl
Zobacz wszystkie- CVE-2023-38546Niskie
Luka w libcurl pozwala atakującemu wstawiać dowolne ciasteczka do działającego programu przy spełnieniu określonych warunków. Gdy uchwyt easy z włączonymi ciasteczkami jest duplikowany przez curl_easy_duphandle, a źródłowy uchwyt nie odczytał ciasteczek z pliku, sklonowany uchwyt zapisuje nazwę pliku jako "none", co może spowodować nieumyślne wczytanie ciasteczek z pliku o nazwie "none" w bieżącym katalogu.
- 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-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-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-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-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-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-2026-92388Krytyczne
Gdy operacja wieloznacznego LIST przez FTP kończy się niepowodzeniem, libcurl pomija ścieżkę przywracania przeznaczoną dla udanych listowań, pozostawiając callback zapisu ustawiony na wewnętrzny parser listowania, a dane callbacku zapisu wskazujące bezpośrednio na uchwyt easy. Ponowne użycie tego uchwytu powoduje natychmiastową awarię, a sklonowanie go przez curl_easy_duphandle() kopiuje uszkodzony stan; zwolnienie oryginału i transfer na klonie powoduje use-after-free, a zmiana tylko CURLOPT_WRITEDATA prowadzi do type confusion.
Oryginalny opis (angielski, źródło NVD)
libcurl's TFTP state machine fails to validate state transitions against the requested transfer direction, accepting opening server responses for both reads and writes interchangeably. A malicious TFTP server can respond to a download request in a way that forces the client into transmit mode, prompting libcurl to consume and transmit data from the handle's persistent `CURLOPT_READDATA` pointer - including data remaining from unrelated prior operations, such as an HTTP POST request executed on a reused handle.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

