漏洞详情
CVE-2011-2930
- 严重等级:高
- GitHub 状态:已审核
- 发布时间:2017年10月24日(至 GitHub 公告数据库)
- 最后更新:2025年11月3日
受影响的软件包
- bundler
- activerecord (RubyGems)
受影响的版本
- ActiveRecord 2.x: >= 2.0.0, < 2.3.13
- ActiveRecord 3.x: >= 3.0.0.beta, < 3.0.10
- ActiveRecord 3.1.x: >= 3.1.0.beta1, < 3.1.0.rc5
已修复的版本
- 2.3.13
- 3.0.10
- 3.1.0.rc5
漏洞描述
ActiveRecord 适配器中 quote_table_name 方法存在多个 SQL 注入漏洞。该漏洞位于 Ruby on Rails 的 activerecord/lib/active_record/connection_adapters/ 目录中,影响以下版本:
- Rails 2.3.13 之前版本
- Rails 3.0.x 的 3.0.10 之前版本
- Rails 3.1.x 的 3.1.0.rc5 之前版本
远程攻击者可以通过构造恶意的列名来执行任意 SQL 命令。
技术背景
漏洞根源
该漏洞的核心问题在于 quote_table_name 方法未能对用户输入(特别是列名)进行适当的净化和转义处理。当外部可控的输入被直接用于构建 SQL 查询时,攻击者可以注入特殊的 SQL 语法元素,从而改变原本的 SQL 命令意图。
相关弱点
- CWE-89: 在 SQL 命令中使用的特殊元素未经适当处理(SQL 注入)
- 在没有充分移除或引用用户可控输入中的 SQL 语法的情况下,生成的 SQL 查询可能将这些输入解释为 SQL 代码而非普通用户数据。
参考链接
安全指标
- EPSS 得分: 0.955%(第76百分位)
- 该分数估计了此漏洞在未来30天内被利用的概率
漏洞标识符
- CVE ID: CVE-2011-2930
- GHSA ID: GHSA-h6w6-xmqv-7q78
源代码仓库
- rails/rails
致谢
- 分析师:tjuyuxinzhang
注意:此公告已经过编辑,完整历史记录可在相关页面查看。