支持本站 — 捐款将帮助我们持续运营

目标:1000 元,已筹:736

73.6%
一、 漏洞 CVE-2026-23885 基础信息
漏洞信息
                                        # AlchemyCMS 评估注入RCE漏洞

## 概述
Alchemy 是一个基于 Ruby on Rails 的开源内容管理系统引擎。在版本 7.4.12 和 8.0.3 之前,系统在处理资源 URL 代理时使用了不安全的 `eval()` 函数,导致存在远程代码执行风险。

## 影响版本
- Alchemy CMS < 7.4.12
- Alchemy CMS < 8.0.3

## 细节
漏洞位于 `app/helpers/alchemy/resources_helper.rb` 第 28 行的 `Alchemy::ResourcesHelper#resource_url_proxy` 方法中。该方法通过 `resource_handler.engine_name` 属性动态构造字符串并传入 `eval()` 执行。代码通过 `# rubocop:disable Security/Eval` 显式禁用安全检查,暴露了对危险操作的认知。

`engine_name` 来源于模块定义,可受管理员配置影响,因此经过认证的攻击者可操纵该值注入恶意 Ruby 代码,绕过沙箱执行任意系统命令。

## 影响
经过身份验证的攻击者可利用该漏洞在目标服务器上执行任意系统命令,导致完全主机控制权失陷。
                                        
神龙判断

是否为 Web 类漏洞: 未知

判断理由:

N/A
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
AlchemyCMS has Authenticated Remote Code Execution (RCE) via eval injection in ResourcesHelper
来源:美国国家漏洞数据库 NVD
漏洞描述信息
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()`.
来源:美国国家漏洞数据库 NVD
CVSS信息
CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H
来源:美国国家漏洞数据库 NVD
漏洞类别
动态执行代码中指令转义处理不恰当(Eval注入)
来源:美国国家漏洞数据库 NVD
二、漏洞 CVE-2026-23885 的公开POC
#POC 描述源链接神龙链接
三、漏洞 CVE-2026-23885 的情报信息
  • 标题: Release v8.0.3 · AlchemyCMS/alchemy_cms · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            - **安全相关修复**:
      - 修复了`resource_url_proxy`中的`eval`问题,通过使用`send`替代,表明存在潜在的安全漏洞。相关提交:#3563
    
    - **版本信息**:
      - 版本:v8.0.3
      - 发布时间:9小时前
    
    - **贡献者**:
      - 主要由`tdvdeyen`和`alchemycms-ci-bot`参与修复工作
    
    - **其他修复**:
      - 通过修复`Callback`、`Clipboard`、`PictureEditor`等功能,可能间接提高系统的安全性,尽管这些变更不一定直接关联安全漏洞。
                                            
    Release v8.0.3 · AlchemyCMS/alchemy_cms · GitHub
  • 标题: Release v7.4.12 · AlchemyCMS/alchemy_cms · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            ```
    - 项目名称: AlchemyCMS / alchemy_cms
    - 版本: v7.4.12
    - 发布时间: 9小时前
    - 关键bug修复和安全改进:
      - 使用YAML::safe_load替换潜在不安全的用户加载方式 (#3502)
      - 替换resource_url_proxy中的send方法 (#3564)
    ```
                                            
    Release v7.4.12 · AlchemyCMS/alchemy_cms · GitHub
  • 标题: Authenticated Remote Code Execution (RCE) via eval injection in ResourcesHelper · Advisory · AlchemyCMS/alchemy_cms · GitHub -- 🔗来源链接

    标签:x_refsource_CONFIRM

    神龙速读:
                                            以下是从网页截图中获取到的关于漏洞的关键信息:
    
    ### 漏洞概述
    - **漏洞类型**: Authenticated Remote Code Execution (RCE) via eval injection in ResourcesHelper
    - **严重性**: Moderate (6.6/10)
    - **影响版本**: 7.4.11, 8.0.2
    - **修补版本**: 7.4.12, 8.0.3
    
    ### 漏洞详情
    - **摘要**: 在对AlchemyCMS源代码进行手动安全审计时发现了一个漏洞。应用程序使用了Ruby的`eval()`函数来动态执行由`resource_handler.engine_name`属性提供的字符串。
    - **详细描述**: 漏洞位于`app/helpers/alchemy/resources_helper.rb`文件的第28行。代码明确地绕过了安全检查,使用了危险的函数但未进行适当的缓解。由于`engine_name`可以被管理配置影响,攻击者可以绕过Ruby沙箱并在主机操作系统上执行任意命令。
    
    ### 证明概念 (PoC)
    - **关键代码**:
        ```ruby
        def resource_url_proxy(resource_handler)
          if resource_handler.engine_name && !resource_handler.engine_name.empty?
            eval(resource_handler.engine_name)
          end
        end
        ```
    - **PoC脚本**: 展示了`eval`函数可以直接被利用,创建了验证文件并成功执行了命令。
    
    ### 其他信息
    - **CVE ID**: CVE-2026-23885
    - **弱点类型**: CWE-95 (Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection'))
    - **报告者**: TheDeepOpC
    
    这些信息对于理解漏洞的严重性、范围以及如何修复它非常重要。
                                            
    Authenticated Remote Code Execution (RCE) via eval injection in ResourcesHelper · Advisory · AlchemyCMS/alchemy_cms · GitHub
  • 标题: Merge pull request #3563 from AlchemyCMS/backport/8.0-stable/pr-3562 · AlchemyCMS/alchemy_cms@563c4ce · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            从这个网页截图中可以获取到以下关于漏洞的关键信息:
    
    1. **代码更改**:
       - 在 `app/helpers/alchemy/resources_helper.rb` 文件中,对 `resource_url_proxy` 方法进行了修改。将 `eval` 替换为 `public_send`,以修复潜在的安全漏洞。
    
    2. **漏洞修复**:
       - 修复了与 `resource_url_proxy` 相关的漏洞,该漏洞可能涉及到 `eval` 方法的不安全使用,可能导致任意代码执行。
    
    3. **安全检查工具**:
       - 使用了 `Brakeman` 安全扫描工具进行代码审查,更新了 `Brakeman` 的版本,优化了安全扫描配置。
    
    4. **更新依赖**:
       - 更新了 `ruby` 版本到 `3.4.8`。
       - 更新了 `Brakeman` 依赖版本。
    
    5. **安全漏洞类型**:
       - 提到了多种安全漏洞类型,如 `File Access`、`Mass Assignment`、`Cross-Site Scripting` 和 `Dynamic Render Path`,涉及多个文件和控制器。
    
    6. **安全扫描结果**:
       - 安全扫描结果总结在 `config/brakeman.ignore` 文件中,列出了需要关注的安全警告和漏洞。
    
    总结:该提交主要涉及对 `resource_url_proxy` 方法的安全修复,通过替换 `eval` 方法防止潜在的任意代码执行漏洞,并对项目使用的安全工具和依赖进行了更新。安全扫描结果汇总了多种潜在安全风险,帮助进一步改进代码安全性。
                                            
    Merge pull request #3563 from AlchemyCMS/backport/8.0-stable/pr-3562 · AlchemyCMS/alchemy_cms@563c4ce · GitHub
  • 标题: Merge pull request #3564 from AlchemyCMS/backport/7.4-stable/pr-3562 · AlchemyCMS/alchemy_cms@55d03ec · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            ### 关键信息摘要
    
    - **漏洞类型**:
      - 软件安全修改指示可能存在评估(`eval`)相关潜在安全漏洞。
      
    - **代码变更**:
      ```markdown
      - 修改文件: `lib/alchemy/resources_helper.rb`
      - 替换`eval(resource_handler.engine_name)`
      - 使用`public_send(resource_handler.engine_name)`代替
      ```
      
    - **安全改进**:
      - 移除了`eval` 方法的使用,降低代码执行安全隐患。
      - 提升代码简洁性和安全性。
      
    - **测试覆盖增强**:
      - `spec/libraries/resources_helper_spec.rb` 获取新测试范围。
      - 对 `public_send` 替代方案验证有效性与预期结果。
      
    - **版本及标签**:
      - 标签 7.4-stable 是关键漏洞修复的关键版本。
      - 关联版本 v7.4.12 包含此修补程序。
      
    ### 安全提示
    
    此次更改的主要目的是减少使用`eval` 方法以预防潜在安全问题,确保在危害性输入面前更不容易受攻击。
                                            
    Merge pull request #3564 from AlchemyCMS/backport/7.4-stable/pr-3562 · AlchemyCMS/alchemy_cms@55d03ec · GitHub
  • https://nvd.nist.gov/vuln/detail/CVE-2026-23885
四、漏洞 CVE-2026-23885 的评论

暂无评论


发表评论