Protection Mechanism Failure Affecting truffleruby package, versions <34.0.1-r2


Severity

Recommended
low

Based on default assessment until relevant scores are available.

Threat Intelligence

EPSS
1.13% (63rd 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 IDSNYK-CHAINGUARDLATEST-TRUFFLERUBY-17754223
  • published1 Jul 2026
  • disclosed24 Apr 2026

Introduced: 24 Apr 2026

CVE-2026-41316  (opens in a new tab)
CWE-693  (opens in a new tab)

How to fix?

Upgrade Chainguard truffleruby to version 34.0.1-r2 or higher.

NVD Description

Note: Versions mentioned in the description apply only to the upstream truffleruby package and not the truffleruby package as distributed by Chainguard. See How to fix? for Chainguard 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