漏洞概述
CVE-2011-2930 是 Ruby on Rails 框架中 ActiveRecord 组件的一个严重安全漏洞,被归类为 SQL 注入类型,威胁等级为高危。该漏洞允许远程攻击者执行任意的 SQL 命令。
受影响的组件
- 包名:
activerecord(通过 RubyGems 分发) - 受影响版本:
- Rails 2.x: 从 2.0.0 到 2.3.13 之前的版本
- Rails 3.0.x: 从 3.0.0.beta 到 3.0.10 之前的版本
- Rails 3.1.x: 从 3.1.0.beta1 到 3.1.0.rc5 之前的版本
漏洞详情
该漏洞存在于 ActiveRecord 连接适配器中的 quote_table_name 方法内。具体路径为:activerecord/lib/active_record/connection_adapters/。
漏洞成因:该方法未能正确过滤或转义外部输入(在此案例中为列名),导致攻击者可以通过提交精心构造的列名字符串,将恶意 SQL 代码注入到最终生成的 SQL 查询命令中。
修复版本
已发布以下修补版本以解决此漏洞:
- 2.3.13
- 3.0.10
- 3.1.0.rc5
用户应立即升级到对应的修补版本或更高版本。
安全弱点
此漏洞被归类为 CWE-89: SQL 命令中使用的特殊元素中和不当(SQL 注入)。其核心问题是,产品在构造 SQL 命令时使用了来自上游组件的外部输入,但未能对这些输入中可能修改原定 SQL 命令意图的特殊元素进行适当的清理或转义。
参考链接
元数据
- CVE ID: CVE-2011-2930
- GHSA ID: GHSA-h6w6-xmqv-7q78
- 源代码仓库: rails/rails
- 首次公开(NVD): 2011年8月29日
- 录入GitHub公告数据库: 2017年10月24日
- 最后更新: 2025年11月3日