セキュリティアップデートがまとめてリリースされました。
アップデートできない人は回避策をどうぞ。
Filter Skipping bugs
概要
action名に*などを指定すると任意のviewが参照できてしまう問題。
対象
3.0以降でroutesに:actionを使用している場合が該当。
回避策
match '/:controller(/:action(/:id))'
を
match '/:controller(/:action(/:id))', :action => /[a-z_]+/
に変更。
UTF-8 escaping vulnerability
ruby1.8の正規表現で、あるunicode文字列を使用した場合にXSSとなる脆弱性。
対象
ruby1.8系でのrails2.0以上。
回避策
before_filter
private before_filter :reject_invalid_requests def reject_invalid_requests if include_invalid_utf8?(params) head :bad_request end end def include_invalid_utf8?(param) param.any? {|k, v| !validate(k, v)} end def validate(*vars) vars.all? do |var| case var when Hash var[:tempfile].respond_to?(:read) ? true : !include_invalid_char?(var) when Array validate(*var) else ActiveSupport::Multibyte.verify(var.to_s) end end end
他bugfixなど
schema.rbにmagic encoding追加、デフォルトencodingをUTF-8に。
ActiveRecord::Batches#find_eachがselfを返すなど。
(3.0.10)
リリースが遅れた理由
珍しく下記のような内容が記載されています。
8/8にリリース予定だったが、CVEのidが発行されるのを待って遅らせたらしい。
でも、CVE idがまだ発行されないので、先行的にリリースをしたとのこと。
どうしたんでしょうね。CVE。