CVE-2026-23885

Source
https://cve.org/CVERecord?id=CVE-2026-23885
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-23885.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2026-23885
Aliases
Published
2026-01-19T21:09:06.757Z
Modified
2026-01-22T02:50:51.973199Z
Severity
  • 6.4 (Medium) CVSS_V3 - CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H CVSS Calculator
Summary
AlchemyCMS has Authenticated Remote Code Execution (RCE) via eval injection in ResourcesHelper
Details

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().

Database specific
{
    "cwe_ids": [
        "CWE-95"
    ],
    "cna_assigner": "GitHub_M",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/23xxx/CVE-2026-23885.json"
}
References

Affected packages

Git / github.com/alchemycms/alchemy_cms

Affected ranges

Type
GIT
Repo
https://github.com/alchemycms/alchemy_cms
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed
Database specific
{
    "versions": [
        {
            "introduced": "0"
        },
        {
            "fixed": "7.4.12"
        }
    ]
}
Type
GIT
Repo
https://github.com/alchemycms/alchemy_cms
Events
Database specific
{
    "versions": [
        {
            "introduced": "8.0.0.a"
        },
        {
            "fixed": "8.0.3"
        }
    ]
}

Affected versions

v.*

v.1.5.2

v1.*

v1.1.1
v1.2.0
v1.2.1
v1.2.4
v1.3.0
v1.5.0
v1.5.1
v1.5.3
v1.5.5
v1.6.0

v2.*

v2.0
v2.0.1
v2.0.2
v2.0.3
v2.0.3.1
v2.0.4
v2.0.5
v2.0.6
v2.0.6.1
v2.0.pre2
v2.0.pre3
v2.0.pre4
v2.0.pre5
v2.0.rc1
v2.0.rc2
v2.0.rc3
v2.0.rc4
v2.0.rc5
v2.0.rc6
v2.1
v2.1.1
v2.1.2
v2.1.7b
v2.1.beta1
v2.1.beta5
v2.1.beta6
v2.1.rc2
v2.1.rc3
v2.1.rc4
v2.1.rc5
v2.1.rc6
v2.2.0
v2.2.rc1
v2.2.rc11
v2.2.rc13
v2.2.rc14
v2.2.rc15
v2.2.rc2
v2.2.rc3
v2.2.rc6
v2.2.rc7
v2.2.rc8
v2.3.rc5
v2.4.beta2
v2.4.rc1
v2.4.rc2
v2.4.rc4
v2.5.0.b2
v2.5.0.b5
v2.5.0.b9
v2.5.0.rc3
v2.5.0.rc4
v2.6.0.rc5
v2.7.0

v3.*

v3.0.0
v3.0.0.rc5
v3.0.0.rc6
v3.0.0.rc7
v3.0.0.rc8
v3.1.0.beta1
v3.1.0.beta2
v3.1.0.beta3
v3.1.0.beta4
v3.1.0.beta5
v3.1.0.beta6
v3.1.0.rc1
v3.2.0.beta
v3.3.0.rc1
v3.3.0.rc2
v3.6.0

v4.*

v4.0.0.beta
v4.0.0.rc1
v4.0.0.rc2
v4.1.0
v4.1.0.beta
v4.1.0.rc1
v4.2.0
v4.2.0.rc1
v4.3.0
v4.4.0
v4.4.2
v4.4.3

v5.*

v5.0.0.beta1
v5.0.0.beta2
v5.0.0.rc1
v5.1.0.beta1
v5.1.0.beta2
v5.1.0.rc1
v5.2.0.b1

v6.*

v6.0.0
v6.0.0.b1
v6.0.0.b2
v6.0.0.b3
v6.0.0.pre.b4
v6.0.0.pre.b5
v6.0.0.pre.b6
v6.0.0.pre.rc1
v6.0.0.pre.rc2
v6.0.0.pre.rc3
v6.0.0.pre.rc4
v6.0.0.pre.rc5
v6.0.0.pre.rc6
v6.0.0.pre.rc7

v7.*

v7.0.0
v7.0.0.pre.a
v7.0.0.pre.b
v7.0.0.pre.c
v7.0.0.pre.rc1
v7.0.1
v7.1.0
v7.1.0.pre.b1
v7.1.0.pre.b2
v7.1.0.pre.rc1
v7.2.0
v7.2.0.b
v7.2.0.rc1
v7.2.0.rc2
v7.2.1
v7.3.0
v7.3.1
v7.3.2
v7.3.3
v7.3.4
v7.4.0
v7.4.1
v7.4.10
v7.4.11
v7.4.2
v7.4.3
v7.4.4
v7.4.5
v7.4.6
v7.4.7
v7.4.8
v7.4.9

Database specific

source

"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-23885.json"