Katalog CVE

CVE-2026-41316

WysokieCVSS 8.1
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Podwyższone ryzyko
1.13%

Percentyl 64 - wyżej niż 64% wszystkich znanych CVE

Streszczenie

Podatność w bibliotece ERB dla Ruby umożliwia ominięcie zabezpieczenia przed deserializacją. Mimo że w metodach `ERB#result` i `ERB#run` dodano ochronę przed wykonaniem kodu po odtworzeniu obiektu przez `Marshal.load`, trzy inne publiczne metody (`def_method`, `def_module`, `def_class`) nie zostały zabezpieczone. Atakujący może wykorzystać `ERB#def_module` do wykonania dowolnego kodu.

Ocena ryzyka

Ryzyko polega na możliwości zdalnego wykonania kodu (RCE) w aplikacji Ruby używającej biblioteki ERB, jeśli atakujący może dostarczyć niesprawdzone dane do deserializacji. Może to prowadzić do pełnego przejęcia serwera lub aplikacji.

Rekomendacja

Należy natychmiast zaktualizować bibliotekę ERB do wersji 4.0.3.1, 4.0.4.1, 6.0.1.1 lub 6.0.4 (w zależności od używanej gałęzi). Jeśli aktualizacja nie jest możliwa, należy unikać deserializacji niezaufanych danych za pomocą `Marshal.load`.

Powiązane podatności

Oryginalny opis (angielski, źródło NVD)

ERB is a templating system for Ruby. Ruby 2.7.0 (before ERB 2.2.0 was published on rubygems.org) introduced an `@_init` instance variable guard in `ERB#result` and `ERB#run` to prevent code execution when an ERB object is reconstructed via `Marshal.load` (deserialization). However, three other public methods that also evaluate `@src` via `eval()` were not given the same guard: `ERB#def_method`, `ERB#def_module`, and `ERB#def_class`. An attacker who can trigger `Marshal.load` on untrusted data in a Ruby application that has `erb` loaded can use `ERB#def_module` (zero-arg, default parameters) as a code execution sink, bypassing the `@_init` protection entirely. ERB 4.0.3.1, 4.0.4.1, 6.0.1.1, and 6.0.4 patch the issue.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS