attachment_fu プラグインの脆弱性っぽいものについて
報告して修正もしてもらえたのでメモ。
以前 穴があると言ったプラグインは attachment_fu です。READMEに書いてあるような mass assignment
@attachable_file = AttachmentMetadataModel.new(params[:attachable])
を行っている場合、プラグインやサーバの設定にもよりますが最悪 Rails が動いているサーバ上のあらゆるファイルを攻撃者に読み取られてしまいます。
とりあえず、
@attachable_file = AttachmentMetadataModel.new @attachable_file.uploaded_data = params[:attachable][:uploaded_data]
のように uploaded_data だけに(独自の属性を追加していればそれらもですが)明示的に入力値をセットするよう変更するか、モデルに
attr_accessible :uploaded_data
をつけるようにするなど*1、不用意な mass assignment を避けるよう何らかの対策をしたほうがいいです*2。攻撃コードは書くまでもないので割愛しますが、昨日も書いた通りやっぱり mass assignment がデフォルトで有効なのは危なすぎる気がします。Railsのコミッタほどの人でも対処を忘れるような機能はデフォルト off にしたほうがいいと思うんですが……。