CVE-2021-22901
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Bardzo wysokie ryzykoPercentyl 99 - wyżej niż 99% wszystkich znanych CVE
Streszczenie
curl w wersjach 7.75.0 do 7.76.1 cierpi na podatność use-after-free, która powoduje użycie już zwolnionej pamięci, gdy przychodzi ticket sesji TLS 1.3 na połączeniu. Złośliwy serwer może w rzadkich okolicznościach wykorzystać to do zdalnego wykonania kodu w kliencie.
Ocena ryzyka
Atakujący serwer może potencjalnie wykonać dowolny kod na kliencie, co może prowadzić do przejęcia systemu klienta, kradzieży danych lub dalszych ataków.
Rekomendacja
Zaleca się natychmiastową aktualizację curl do wersji 7.77.0 lub nowszej, która zawiera poprawkę. Należy również monitorować połączenia TLS 1.3 i ograniczyć zaufanie do serwerów.
Inne podatności w curl
Zobacz wszystkie- CVE-2022-27775Wysokie
W curl w wersjach od 7.65.0 do 7.82.0 występuje podatność na ujawnienie informacji, która pozwala na ponowne wykorzystanie połączenia przy użyciu adresu IPv6 z innego identyfikatora strefy.
- CVE-2022-22576Wysokie
W curl w wersjach od 7.33.0 do 7.82.0 występuje podatność związana z niewłaściwą autoryzacją, która może pozwolić na ponowne użycie połączeń uwierzytelnionych OAUTH2 bez odpowiedniego sprawdzenia, czy połączenie zostało uwierzytelnione tymi samymi poświadczeniami. Dotyczy to protokołów z obsługą SASL: SMPTP(S), IMAP(S), POP3(S) oraz LDAP(S) (tylko openldap).
- CVE-2024-11053Niskie
Gdy curl jest proszony o użycie pliku `.netrc` do uwierzytelnienia oraz o podążanie za przekierowaniami HTTP, może wyciec hasło użyte dla pierwszego hosta do hosta docelowego po przekierowaniu w pewnych okolicznościach. Problem występuje tylko, jeśli plik netrc zawiera wpis pasujący do hosta docelowego.
- CVE-2024-9681Średnie
Gdy curl ma używać HSTS, czas wygaśnięcia dla subdomeny może nadpisać wpis w pamięci podręcznej domeny nadrzędnej, powodując wcześniejsze lub późniejsze wygaśnięcie niż zamierzono. Dotyczy to aplikacji używających HSTS i adresów URL z niebezpiecznym schematem HTTP://.
- CVE-2024-8096Średnie
Gdy curl ma używać rozszerzenia TLS Certificate Status Request (OCSP stapling) do weryfikacji certyfikatu serwera, może nie wykryć niektórych problemów OCSP i błędnie uznać odpowiedź za poprawną, jeśli zwrócony status zgłasza inny błąd niż oczekiwany.
- CVE-2026-8926Krytyczne
Gdy curl używa pliku .netrc do znalezienia poświadczeń i jednocześnie podano URL z nazwą użytkownika (bez hasła), curl może błędnie pobrać i użyć hasła innego użytkownika z .netrc dla tego hosta, jeśli nie ma dopasowania dla podanego użytkownika.
- CVE-2026-8925Krytyczne
W bibliotece curl wykryto podwójne zwolnienie pamięci (double-free) w mechanizmie uwierzytelniania SASL. Błąd powoduje, że kontekst GSASL jest czyszczony dwukrotnie bez wyzerowania wskaźnika, co prowadzi do wywołania funkcji free() na tym samym obszarze pamięci.
- CVE-2026-8924Krytyczne
Błąd w logice parsowania ciasteczek w curl pozwala złośliwemu serwerowi HTTP ustawiać "super cookies", które omijają sprawdzanie Public Suffix List, umożliwiając wstrzykiwanie ciasteczek do niepowiązanych domen trzecich.
- CVE-2023-38545Krytyczne
Podatność CVE-2023-38545 dotyczy przepełnienia bufora w pamięci sterty podczas handshake'u proxy SOCKS5 w narzędziu curl. Problem występuje, gdy curl przekazuje zbyt długą nazwę hosta do proxy, co prowadzi do nieprawidłowego kopiowania danych.
- CVE-2026-80255Wysokie
Nagłówek Set-Cookie używający tabulatora (ASCII 9) zamiast spacji (ASCII 32) bezpośrednio przed atrybutem Secure powoduje, że curl zapisuje cookie bez flagi Secure. Cookie może być następnie błędnie wysyłane przez zwykły HTTP przy kolejnych żądaniach do tego samego hosta.
Oryginalny opis (angielski, źródło NVD)
curl 7.75.0 through 7.76.1 suffers from a use-after-free vulnerability resulting in already freed memory being used when a TLS 1.3 session ticket arrives over a connection. A malicious server can use this in rare unfortunate circumstances to potentially reach remote code execution in the client. When libcurl at run-time sets up support for TLS 1.3 session tickets on a connection using OpenSSL, it stores pointers to the transfer in-memory object for later retrieval when a session ticket arrives. If the connection is used by multiple transfers (like with a reused HTTP/1.1 connection or multiplexed HTTP/2 connection) that first transfer object might be freed before the new session is established on that connection and then the function will access a memory buffer that might be freed. When using that memory, libcurl might even call a function pointer in the object, making it possible for a remote code execution if the server could somehow manage to get crafted memory content into the correct place in memory.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

