{"answers":{"affected":"4 open source packages ship an affected version, including alchemy_cms. It affects 1 product.","exploited":"There is no known exploitation of CVE-2026-23885 in the wild and no public exploit code.","fix":"Upgrade alchemy_cms to a fixed version for your release line: 7.4.12 or 8.0.3.","what":"CVE-2026-23885 is a medium-severity code injection vulnerability in AlchemyCMS alchemy_cms, published on 19 Jan 2026. It can only be exploited from the same machine or local network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-23885 and fix it if it is affected.\n\nWhat it is: CVE-2026-23885 is a medium-severity code injection vulnerability in AlchemyCMS alchemy_cms, published on 19 Jan 2026. It can only be exploited from the same machine or local network, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-23885 in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- alchemy_cms (RubyGems): affected all versions; fixed in 7.4.12\n- alchemy_cms (RubyGems): affected all versions; fixed in 7.4.12\n- alchemy_cms (RubyGems): affected from 8.0.0.a; fixed in 8.0.3\n- alchemy_cms (RubyGems): affected from 8.0.0.a; fixed in 8.0.3\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-23885/ (Markdown: https://insights.sbomify.com/CVE-2026-23885/index.md)","id":"CVE-2026-23885","markdown":"https://insights.sbomify.com/CVE-2026-23885/index.md","name":"CVE-2026-23885","record":{"aliases":["GHSA-2762-657x-v979"],"analysis":{"component_type":"web_application","fix_type":"upgrade","impacts":["code_execution"],"network_reachable":"adjacent_or_local","non_default_config":false,"product_category":"Ruby CMS engine","requires_auth":"high_privilege","summary":"Authenticated attackers can execute arbitrary system commands via eval injection in AlchemyCMS, requiring an upgrade to patched versions.","user_interaction":"not_required","vuln_class":"code_injection"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[{"product":"alchemy_cms","vendor":"alchemy-cms"}],"cvss":{"score":6.4,"severity":"medium","source":"cna","vector":"CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H","version":"3.1"},"cwes":[{"id":"CWE-95","name":"Improper Neutralization of Directives in Dynamically Evaluated Code"}],"description":"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()`.","ecosystems":["RubyGems"],"exploits":{"exploitdb":0,"first_seen":"2026-01-20","github_poc":1,"max_poc_stars":0,"metasploit":0,"nuclei":0,"refs":[{"date":"2026-01-20T09:44:29Z","kind":"github_poc","ref":"https://github.com/TheDeepOpc/CVE-2026-23885","stars":0,"title":null}],"tier":"poc_unverified"},"has_fix":true,"headline":"AlchemyCMS has Authenticated Remote Code Execution (RCE) via eval injection in ResourcesHelper","id":"CVE-2026-23885","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"RubyGems","product":null,"products":[],"type":"code_injection","year":"2026"},"n_packages":4,"n_references":5,"next":{"headline":"Swift W3C TraceContext has malformed HTTP header that can cause a crash","id":"CVE-2026-23886"},"packages":[{"ecosystem":"RubyGems","fixed":["7.4.12"],"introduced":["0"],"last_affected":[],"package":"alchemy_cms","purl":null,"source":"GHSA-2762-657x-v979"},{"ecosystem":"RubyGems","fixed":["7.4.12"],"introduced":["0"],"last_affected":[],"package":"alchemy_cms","purl":"pkg:gem/alchemy_cms","source":"GHSA-2762-657x-v979"},{"ecosystem":"RubyGems","fixed":["8.0.3"],"introduced":["8.0.0.a"],"last_affected":[],"package":"alchemy_cms","purl":null,"source":"GHSA-2762-657x-v979"},{"ecosystem":"RubyGems","fixed":["8.0.3"],"introduced":["8.0.0.a"],"last_affected":[],"package":"alchemy_cms","purl":"pkg:gem/alchemy_cms","source":"GHSA-2762-657x-v979"}],"prev":{"headline":"Heap-use-after-free in gdi_set_bounds","id":"CVE-2026-23884"},"products":["alchemy_cms"],"published":"2026-01-19","related":[{"cvss_score":6.1,"headline":"Cross-site scripting in n/a","id":"CVE-2018-18307","kev_date_added":null,"published":"2018-10-16"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"},{"class":"open","licence":"CC0","name":"PoC-in-GitHub"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"total"},"state":"PUBLISHED","updated":"2026-01-21","vendors":["AlchemyCMS"]},"summary":"Authenticated attackers can execute arbitrary system commands via eval injection in AlchemyCMS, requiring an upgrade to patched versions.","url":"https://insights.sbomify.com/CVE-2026-23885/"}