CRITICAL✓ PATCH🇬🇧 English

CVE-2022-28738

Double free w kompilatorze Regexp w Ruby — zapis do dowolnych obszarów pamięci

CVSS 9.8v3.1pub. 2022-05-09upd. 2024-11-21

W kompilatorze wyrażeń regularnych (Regexp) w Ruby 3.x wykryto błąd double free (CWE-415), klasyfikowany jako podatność krytyczna z wynikiem CVSS 9.8. Atakujący może wykorzystać ją do zapisu w nieoczekiwanych obszarach pamięci, jeśli aplikacja przetwarza niezaufane dane wejściowe użytkownika jako wyrażenia regularne.

Pokaż oryginał (EN)

A double free was found in the Regexp compiler in Ruby 3.x before 3.0.4 and 3.1.x before 3.1.2. If a victim attempts to create a Regexp from untrusted user input, an attacker may be able to write to unexpected memory locations.

🤖 Analiza AI
Jak działa

Podatność polega na dwukrotnym zwolnieniu tego samego obszaru pamięci (double free) podczas kompilacji wyrażeń regularnych. Jeśli aplikacja tworzy obiekt Regexp na podstawie danych dostarczonych przez użytkownika, błąd w zarządzaniu pamięcią może zostać wywołany przez specjalnie spreparowany ciąg znaków. W wyniku tego atakujący uzyskuje możliwość zapisu do nieoczekiwanych lokalizacji pamięci, co jest charakterystycznym skutkiem błędów klasy double free.

Skutki

Atakujący może doprowadzić do zapisu danych w arbitralnych obszarach pamięci procesu, co w praktyce może skutkować wykonaniem dowolnego kodu (RCE), ujawnieniem danych lub destabilizacją aplikacji.

Mitygacja

Należy zaktualizować Ruby do wersji 3.0.4 lub wyższej (w gałęzi 3.0.x) oraz do wersji 3.1.2 lub wyższej (w gałęzi 3.1.x). Jako obejście należy unikać tworzenia obiektów Regexp bezpośrednio z niezaufanych danych wejściowych użytkownika do czasu zastosowania patcha.

Kogo dotyczy

Ruby w wersjach 3.x przed 3.0.4 oraz 3.1.x przed 3.1.2

Uwagi

Podatność została opisana przez Ruby Security Team i opublikowana oficjalnie 12 kwietnia 2022 r. na stronie ruby-lang.org. Szczegóły techniczne dostępne są również w raporcie HackerOne #1220911.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Ruby Lang Ruby

    APP
    Ruby-Lang
    3.0.0 – 3.0.4 (bez)3.1.0 – 3.1.2 (bez)
🟢
PATCH DOSTĘPNY
Aktualizacja od producenta gotowa. Wdrożenie w ramach standardowego cyklu.
CWE
Referencje

Powiązane podatności

CVE-2016-2338CRITICAL9.8PL ✓ten sam produkt

Heap overflow w Ruby Psych::Emitter start_document — RCE

CVE-2021-41816CRITICAL9.8PL ✓ten sam produkt

Integer overflow w CGI.escape_html w Ruby — przepełnienie bufora

CVE-2011-4121CRITICAL9.8PL ✓ten sam produkt

Ruby OpenSSL: błędna generacja kluczy prywatnych RSA (wykładnik = 1)

CVE-2018-16395CRITICAL9.8PL ✓ten sam produkt

Błędne porównanie obiektów X.509 w bibliotece OpenSSL dla Ruby

CVE-2018-8780CRITICAL9.1PL ✓ten sam produkt

Path traversal w metodach Dir Ruby przez brak walidacji znaków NULL