CRITICAL✓ PATCH🇬🇧 English

CVE-2021-41816

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

CVSS 9.8v3.1pub. 2022-02-06upd. 2024-11-21

Funkcja CGI.escape_html w bibliotece Ruby CGI zawiera błąd integer overflow prowadzący do przepełnienia bufora (buffer overflow). Podatność dotyczy platform, gdzie typy size_t i long mają różną szerokość (np. Windows), i może być wywołana przez nieprawidłowo długi ciąg znaków.

Pokaż oryginał (EN)

CGI.escape_html in Ruby before 2.7.5 and 3.x before 3.0.3 has an integer overflow and resultant buffer overflow via a long string on platforms (such as Windows) where size_t and long have different numbers of bytes. This also affects the CGI gem before 0.3.1 for Ruby.

🤖 Analiza AI
Jak działa

Na platformach, gdzie rozmiar typów size_t i long jest różny (takich jak Windows 64-bit), przetwarzanie bardzo długiego ciągu znaków przez funkcję CGI.escape_html powoduje przepełnienie liczby całkowitej (integer overflow, CWE-190). Wynik tej operacji jest następnie używany jako rozmiar alokacji pamięci, co prowadzi do zapisu poza przeznaczonym obszarem bufora (buffer overflow). Atakujący może dostarczyć spreparowany, odpowiednio długi ciąg wejściowy do aplikacji korzystającej z tej funkcji.

Skutki

Udane wykorzystanie podatności może umożliwić atakującemu zdalne wykonanie kodu (RCE), a także prowadzić do naruszenia poufności, integralności i dostępności systemu — co odzwierciedla maksymalny wynik CVSS 9.8.

Mitygacja

Należy zaktualizować Ruby do wersji 2.7.5 lub nowszej (dla gałęzi 2.7.x) albo do wersji 3.0.3 lub nowszej (dla gałęzi 3.0.x). Gem CGI należy zaktualizować do wersji 0.3.1 lub nowszej. W przypadku dystrybucji Linux należy zastosować patche dostępne u producenta zgodnie z referencjami (Fedora, Debian, Gentoo).

Kogo dotyczy

Ruby przed wersją 2.7.5 oraz Ruby 3.x przed wersją 3.0.3; gem CGI przed wersją 0.3.1 dla Ruby. Podatność szczególnie dotyczy platform, gdzie size_t i long mają różną liczbę bajtów (np. Windows).

Uwagi

Podatność zgłoszona poprzez platformę HackerOne (raport #1328463). Problem dotyczy głównie środowisk Windows ze względu na różnicę w szerokości typów size_t i long na tej platformie.

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

    OS
    Fedoraproject
    3435
  • Ruby Lang Cgi

    APP
    Ruby-Lang
    < 0.3.1≤ 0.1.0≤ 0.2.0
  • Ruby Lang Ruby

    APP
    Ruby-Lang
    2.7.0 – 2.7.5 (bez)3.0.0 – 3.0.3 (bez)
🟢
PATCH DOSTĘPNY
Aktualizacja od producenta gotowa. Wdrożenie w ramach standardowego cyklu.
Tagi
Memory
CWE
Referencje

Powiązane podatności

CVE-2024-4577CRITICAL9.8⚠ KEVPL ✓ten sam produkt

PHP CGI argument injection – RCE na Windows przez mechanizm Best-Fit

CVE-2024-5274CRITICAL9.6⚠ KEVPL ✓ten sam produkt

Type Confusion w V8 (Google Chrome) — RCE przez spreparowaną stronę HTML

CVE-2024-4947CRITICAL9.6⚠ KEVPL ✓ten sam produkt

Type Confusion w silniku V8 Chrome — zdalne wykonanie kodu (RCE)

CVE-2024-4671CRITICAL9.6⚠ KEVPL ✓ten sam produkt

Use-after-free w Google Chrome Visuals umożliwiający ucieczkę z sandbox

CVE-2023-6345CRITICAL9.6⚠ KEVPL ✓ten sam produkt

Integer overflow w Skia w Google Chrome — sandbox escape