CVE-2026-63381
ŚrednieCVSS 5.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 2 - wyżej niż 2% wszystkich znanych CVE
Streszczenie
Libevent to biblioteka powiadomień o zdarzeniach. Przed wersjami 2.1.13 i 2.2.2-alpha libevent ma use-after-free w buffer.c, gdy evbuffer_add_buffer_reference przetwarza bufor wyjściowy, którego out_total_len wynosi zero. evbuffer_free_all_chains zwalnia początkowy pusty łańcuch bez resetowania outbuf->first, outbuf->last lub outbuf->last_with_datap, a APPEND_CHAIN_MULTICAST następnie dereferencjonuje wiszący wskaźnik łańcucha. Osoba wywołująca, która może sterować tym stanem bufora, może spowodować uszkodzenie pamięci lub awarię procesu. Problem naprawiono w wersjach 2.1.13 i 2.2.2-alpha.
Ocena ryzyka
Podatność może prowadzić do awarii procesu lub uszkodzenia pamięci, co może skutkować niedostępnością usług lub naruszeniem integralności danych.
Rekomendacja
Zaleca się aktualizację Libevent do wersji 2.1.13 lub 2.2.2-alpha (lub nowszej) w celu wyeliminowania podatności.
Inne podatności w Libevent
Zobacz wszystkie- CVE-2016-10197Wysokie
Funkcja search_make_new w pliku evdns.c w libevent przed wersją 2.1.6-beta umożliwia atakującym spowodowanie odmowy usługi (odczyt poza zakresem) poprzez podanie pustej nazwy hosta.
- CVE-2016-10196Wysokie
W funkcji evutil_parse_sockaddr_port w pliku evutil.c w libevent przed wersją 2.1.6-beta występuje przepełnienie bufora na stosie. Atakujący mogą spowodować awarię usługi (błąd segmentacji) poprzez wykorzystanie długiego ciągu w nawiasach w argumencie ip_as_string.
- CVE-2015-6525Wysokie
Wielokrotne przepełnienia całkowite w API evbuffer w Libevent 2.0.x przed wersją 2.0.22 oraz 2.1.x przed wersją 2.1.5-beta mogą pozwolić atakującym na wywołanie odmowy usługi lub inny nieokreślony wpływ poprzez 'niesamowicie duże dane wejściowe'.
- CVE-2014-6272Wysokie
Wielokrotne przepełnienia całkowite w API evbuffer w Libevent 1.4.x przed 1.4.15, 2.0.x przed 2.0.22 i 2.1.x przed 2.1.5-beta mogą umożliwić atakującym uzależnionym od kontekstu spowodowanie odmowy usługi lub innego nieokreślonego wpływu poprzez 'niesamowicie duże dane wejściowe'.
- CVE-2026-63385Krytyczne
Podatność w Libevent przed wersjami 2.1.13 i 2.2.2-alpha obejmuje dwie słabości w parsowaniu HTTP w pliku http.c. Funkcja evhttp_decode_uri_internal dekoduje procentowo zakodowane bajty %00 na dosłowne znaki NUL, co może powodować obcinanie ścieżki i ominięcie walidacji. Funkcja evhttp_header_is_valid_value akceptuje przestarzałe składanie linii w wartościach nagłówków zawierających CR lub LF, co umożliwia interpretację nagłówków w różny sposób przez proxy i Libevent.
- CVE-2026-63382Krytyczne
Libevent przed wersjami 2.1.13 i 2.2.2-alpha nieprawidłowo obsługuje zduplikowane nagłówki Transfer-Encoding, wartości rozdzielane przecinkami oraz gołe znaki nowej linii w ramkach chunked. Może to prowadzić do desynchronizacji żądań i przemycania drugiego żądania przez niezautentyfikowanego zdalnego atakującego, gdy Libevent jest wdrożony za proxy.
- CVE-2016-10195Krytyczne
Funkcja name_parse w pliku evdns.c w libevent przed wersją 2.1.6-beta umożliwia zdalnym atakującym wywołanie nieokreślonego wpływu poprzez wektory związane z zmienną label_len, co prowadzi do odczytu stosu poza dozwolonym zakresem.
- CVE-2026-63495Wysokie
Libevent to biblioteka do powiadamiania o zdarzeniach. Od wersji 2.2.0-alpha-dev do 2.2.2-alpha serwer WebSocket w pliku ws.c gromadzi pofragmentowane ramki w evws->incomplete_frames bez egzekwowania limitu całkowitego rozmiaru wiadomości. Nieuwierzytelniony zdalny klient może wielokrotnie wysyłać pofragmentowane ramki WebSocket poniżej WS_MAX_RECV_FRAME_SZ z FIN=0, powodując nieograniczony wzrost evbuffer aż do wyczerpania pamięci procesu lub hosta. Problem został naprawiony w wersji 2.2.2-alpha.
- CVE-2026-63388Wysokie
Libevent przed wersjami 2.1.13 i 2.2.2-alpha ma podatność zapisu poza zakresem na stercie w bufferevent_sock.c, gdy bufferevent_socket_set_conn_address_ kopiuje adres peer AF_UNIX dostarczony przez jądro do bufferevent_private.conn_address. Wersje wydaniowe skompilowane z NDEBUG wyłączają zabezpieczenie EVUTIL_ASSERT, a ścieżka akceptacji evhttp może przekazać 110-bajtowy sockaddr z accept() do 28-bajtowego pola. Nieuwierzytelniony lokalny peer, który może połączyć się z nasłuchem AF_UNIX, może nadpisać sąsiedni wskaźnik dns_request i dane na stercie, powodując uszkodzenie pamięci z wpływem na poufność, integralność i dostępność. Problem został naprawiony w wersjach 2.1.13 i 2.2.2-alpha.
- CVE-2026-63387Wysokie
Libevent przed wersjami 2.1.13 i 2.2.2-alpha ma przepełnienie bufora na stosie off-by-one w evdns.c, gdy dnsname_to_labels formatuje rekord DNS z nazwą na końcu 64 KB bufora stosu przydzielonego przez evdns_server_request_format_response. Ostatnia kontrola etykiety pozwala, aby j plus label_len plus jeden równało się buf_len, po czym bajt null jest zapisywany do buf[buf_len]. Spreparowana odpowiedź serwera DNS zawierająca dane PTR, CNAME, MX, NS lub SOA może wywołać zapis o jeden bajt poza zakresem i spowodować awarię lub uszkodzenie procesu. Problem został naprawiony w wersjach 2.1.13 i 2.2.2-alpha.
Oryginalny opis (angielski, źródło NVD)
Libevent is an event notification library. Prior to 2.1.13 and 2.2.2-alpha, libevent has a use-after-free in buffer.c when evbuffer_add_buffer_reference processes an output buffer whose out_total_len is zero. evbuffer_free_all_chains frees the initial empty chain without resetting outbuf->first, outbuf->last, or outbuf->last_with_datap, and APPEND_CHAIN_MULTICAST subsequently dereferences the dangling chain pointer. A caller that can drive this buffer state can cause memory corruption or a process crash. This issue is fixed in versions 2.1.13 and 2.2.2-alpha.

