1/26(火)にRails 4.2.5.1, 4.1.14.1, 5.0.0.beta1.1等のセキュリティフィックスが出たのでそのメモ。
😎 ベーシック認証の文字列比較の応答時間での推測を防ぐ
[CVE-2015-7576] Timing attack vulnerability in basic authentication in Action Controller
ベーシック認証の文字列比較をした時の応答時間で、処理時間が推測されるのを防ぐ。
## こっちは直ぐ違うとわかる |
🍄 DoS(Denial of Service)攻撃でmine-typeを大量に送ったらサーバが落ちてしまう問題の対応
CVE-2016-0751 Possible Object Leak and Denial of Service attack in Action Pack
mime-typeをglobal cacheしていたため、大量な不正アクセスでメモリを圧迫してサービス停止しないようにするための対策。
ちなみに「mime-type」とはデータの種類を表すコードのことで、画像の image/jpeg
やHTMLの text/html
などがある。
🏀 allow_destroy: falseが効かないバグの修正
[CVE-2015-7577] Nested attributes rejection proc bypass in Active Record
accepts_nested_attributes_for
をつけて親子クラスを一括で登録、更新する際に allow_destroy: false
(削除を許可しない)を設定したにもかかわらず、
procの :reject_if
が優先されて削除される不具合があったのを修正。
🐰 renderにパラメータを渡した場合にアプリケーション外のファイルが参照できる不具合の対応
[CVE-2016-0752] Possible Information Leak Vulnerability in Action View
def index |
により、Validationを通さずに値が保存できてしまうバグの対応。
🚕 routesに :controllerがあるとメモリリークするバグの回避
CVE-2015-7581 Object leak vulnerability for wildcard controller routes in Action Pack
めっちゃ勉強になります
🍮 rails-html-sanitizerの重要なセキュリティフィックス
rails-html-sanitizerの重要なセキュリティフィックスが発生しました。
- CVE-2015-7578 Possible XSS vulnerability in rails-html-sanitizer
- CVE-2015-7579 XSS vulnerability in rails-html-sanitizer
- CVE-2015-7580 Possible XSS vulnerability in rails-html-sanitizer
🤔 rails-html-sanitizer 1.0.2 => 1.0.3の差分
rails-html-sanitizer 1.0.2 => 1.0.3にバージョンアップされた差分はこちら。
これにより、rails-html-sanitizer
のフィルタがより厳格化される。
🗽 rails 4.2.5.0 => 4.2.5.1の差分
🏈 4.2.5.1でRSpecのパフォーマンスが悪くなる?
4.2.5.1にした場合、RSpecで上記のエラーがでるようになったそうですが、こちらは対応/Closeされました。
その結果として、RSpecのパフォーマンスが落ちている(処理が遅くなった)人が出ているようです。
本番への適用はもう少しだけ様子を見たほうが良さそうです。
🍣 あとがき
y_yagiさんのブログ「なるようになるブログ」めっちゃ勉強になる。
🐞 参考リンク
- rails commit log流し読み(2016/01/26) - なるようになるブログ
- Rails4 - 複数の子レコードを作成・更新する. accepts_nested_attributes_for - Qiita
- RubyのGCと仲良くしたい〜WeakRefオブジェクトを削除するぞ編〜 - Qiita
- 「Rails 5.0.0.beta1.1 / 4.2.5.1 / 4.1.14.1 / 3.2.22.1」がリリース – 重要なセキュリティ修正を含む