CVE-2026-46727
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 38 - wyżej niż 38% wszystkich znanych CVE
Streszczenie
W Ruby 4 przed wersją 4.0.5 wykryto podatność typu use-after-free w obsłudze timeoutu getaddrinfo opartej na pthread (rb_getaddrinfo w ext/socket/raddrinfo.c). Wyścig (race condition) pozwala zdalnemu atakującemu, który opóźnia odpowiedzi DNS blisko timeoutu ustawionego przez użytkownika, na crash procesu Ruby wywołującego Addrinfo.getaddrinfo(..., timeout:) lub Socket.tcp(..., resolv_timeout:). Teoretycznie możliwa jest eksploatacja prowadząca do uszkodzenia pamięci.
Ocena ryzyka
Atakujący może zdalnie spowodować awarię aplikacji Ruby (DoS) poprzez manipulację odpowiedziami DNS, a w skrajnych przypadkach potencjalnie uzyskać wykonanie kodu w kontekście procesu.
Rekomendacja
Zaleca się aktualizację Ruby do wersji 4.0.5 lub nowszej, która zawiera poprawkę.
Inne podatności w Ruby
Zobacz wszystkie- CVE-2017-17405Wysokie
Ruby w wersjach przed 2.4.3 pozwala na wstrzyknięcie poleceń w Net::FTP. Funkcje takie jak get, getbinaryfile, gettextfile, put, putbinaryfile i puttextfile wykorzystują Kernel#open do otwierania lokalnych plików, co może prowadzić do wykonania dowolnych poleceń, jeśli argument localfile zaczyna się od znaku '|'.
- CVE-2014-6438Wysokie
Metoda URI.decode_www_form_component w Ruby przed wersją 1.9.2-p330 pozwala zdalnym atakującym na wywołanie odmowy usługi poprzez specjalnie przygotowany ciąg znaków.
- CVE-2009-5147Wysokie
W Ruby w wersjach 1.8, 1.9.0, 1.9.2, 1.9.3, 2.0.0 przed patchlevel 648 oraz 2.1 przed 2.1.8 występuje podatność, która pozwala na otwieranie bibliotek z zanieczyszczonymi nazwami.
- CVE-2017-0898Krytyczne
Ruby w wersjach przed 2.4.2, 2.3.5 i 2.2.8 jest podatny na złośliwy ciąg formatujący, który zawiera specyfikator (*) z ogromną wartością ujemną. Może to prowadzić do przepełnienia bufora, co skutkuje uszkodzeniem pamięci w stercie lub ujawnieniem informacji z tej pamięci.
- CVE-2017-11465Krytyczne
Funkcja parser_yyerror w parserze UTF-8 w Ruby 2.4.1 umożliwia atakującym spowodowanie odmowy usługi (nieprawidłowe zapisanie lub odczytanie) lub potencjalnie inny nieokreślony wpływ za pomocą spreparowanego skryptu Ruby.
- CVE-2016-2337Krytyczne
W klasie TclTkIp metody _cancel_eval w Ruby występuje pomyłka typów. Atakujący, przekazując obiekt innego typu niż String jako argument 'retval', może spowodować wykonanie dowolnego kodu.
- CVE-2025-0306Wysokie
Podatność w interpreterze Ruby umożliwia atak typu Marvin Attack, który pozwala osobie atakującej na odszyfrowanie wcześniej zaszyfrowanych wiadomości lub fałszowanie podpisów poprzez wymianę dużej liczby wiadomości z podatną usługą.
Oryginalny opis (angielski, źródło NVD)
An issue was discovered in Ruby 4 before 4.0.5. A race condition leading to a use-after-free in the pthread-based getaddrinfo timeout handler (rb_getaddrinfo in ext/socket/raddrinfo.c) allows a remote attacker who can delay DNS responses near the user-specified timeout to crash a Ruby process that calls Addrinfo.getaddrinfo(..., timeout:) or Socket.tcp(..., resolv_timeout:). Memory-corruption-based exploitation is theoretically possible. The attack could, for example, be carried out through a crafted authoritative DNS server or recursive resolver.

