CVE-2026-41316
Description
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.
How to fix
- access.redhat.com/errata/RHSA-2026:33478
- access.redhat.com/errata/RHSA-2026:18065
- access.redhat.com/errata/RHSA-2026:20606
- access.redhat.com/errata/RHSA-2026:20614
- access.redhat.com/errata/RHSA-2026:20670
- access.redhat.com/errata/RHSA-2026:35834
- access.redhat.com/errata/RHSA-2026:26312
- access.redhat.com/errata/RHSA-2026:26655
- access.redhat.com/errata/RHSA-2026:33462
- access.redhat.com/errata/RHSA-2026:37238
- access.redhat.com/errata/RHSA-2026:18039
- access.redhat.com/errata/RHSA-2026:18030
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| ruby erb | < 4.0.3.1, = 4.0.4, >= 5.0.0, < 6.0.1.1, >= 6.0.2, < 6.0.4 | — |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.