CVE-2026-23885
Medium · 6.4CVSS
6.4
EPSS
0.5%
Published
Jan 19, 2026
CISA due date
—
The record
Alchemy is an open source content management system engine written in Ruby on Rails. Prior to versions 7.4.12 and 8.0.3, the application uses the Ruby `eval()` function to dynamically execute a string provided by the `resource_handler.engine_name` attribute in `Alchemy::ResourcesHelper#resource_url_proxy`. The vulnerability exists in `app/helpers/alchemy/resources_helper.rb` at line 28. The code explicitly bypasses security linting with `# rubocop:disable Security/Eval`, indicating that the use of a dangerous function was known but not properly mitigated. Since `engine_name` is sourced from module definitions that can be influenced by administrative configurations, it allows an authenticated attacker to escape the Ruby sandbox and execute arbitrary system commands on the host OS. Versions 7.4.12 and 8.0.3 fix the issue by replacing `eval()` with `send()`.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| RubyGems | alchemy_cms | 0 | 7.4.12 |
| RubyGems | alchemy_cms | 8.0.0.a | 8.0.3 |
| gem | alchemy_cms | 8.0.0.a | 8.0.3 |
Related vulnerabilities
- GHSA-2762-657x-v979 AlchemyCMS: Authenticated Remote Code Execution (RCE) via eval injection in… Same vulnerability
- CVE-2026-85165 n8n versions before 2.36.2 contain an expression sandbox bypass vulnerability where free… CWE-95
- CVE-2026-19295 IBM Langflow OSS 1.0.0 through 1.11.1 allows an authenticated attacker to execute… CWE-95
- CVE-2026-54569 SENAITE.CORE is the core framework for the SENAITE laboratory information management… CWE-95
- CVE-2026-75062 Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection') in… CWE-95
- CVE-2026-71867 Orval generates type-safe JavaScript clients in TypeScript from OpenAPI v3 and Swagger v2… CWE-95
- CVE-2026-71865 Orval generates type-safe JavaScript clients in TypeScript from OpenAPI v3 and Swagger v2… CWE-95
- CVE-2026-71866 Orval generates type-safe JavaScript clients in TypeScript from OpenAPI v3 and Swagger v2… CWE-95