这是由于ActiveRecord处理嵌套查询参数的方式所致,攻击者可以使用特定的请求,向应用程序的SQL查询中注入某些形式的SQL语句。
比如,受影响的代码可以直接传递请求参数到ActiveRecord类中的where方法,如下:
- Post.where(:id => params[:id]).all
Post.where(:id => params[:id]).all
攻击者可以发起一个请求,导致params[:id]返回一个特定的哈希值,从而使WHERE从句可以查询任意数据表。
受影响的版本:3.0.0及之后的所有版本
未受影响的版本:2.3.14
修复版本下载: