這是由于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
修復版本下載: