Deserialization of Untrusted Data Affecting ruby4.0 package, versions *


Severity

Recommended
0.0
high
0
10

Based on Red Hat Enterprise Linux security rating.

Threat Intelligence

EPSS
0.08% (25th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications

Snyk Learn

Learn about Deserialization of Untrusted Data vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-RHEL10-RUBY40-16243370
  • published25 Apr 2026
  • disclosed24 Apr 2026

Introduced: 24 Apr 2026

NewCVE-2026-41316  (opens in a new tab)
CWE-502  (opens in a new tab)

How to fix?

There is no fixed version for RHEL:10 ruby4.0.

NVD Description

Note: Versions mentioned in the description apply only to the upstream ruby4.0 package and not the ruby4.0 package as distributed by RHEL. See How to fix? for RHEL:10 relevant fixed versions and status.

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.

CVSS Base Scores

version 3.1