tl;dr;
タイトルが全てです
前置き
GitHubのSecurity Advisoryで下記のようなPRがきていると思います
このPRをマージすればリポジトリのアラートも消えて問題なさそうに見えるのですが、実際にはgemのアップデートだけでは不十分です
CVE 2019-16892について
zipのヘッダを改ざんして展開時にクソデカメモリを喰わせる、いわゆるzip bombです(雑説明)
なんでgemのupdateだけでは不十分なのか?
zip bomb対策には Zip.validate_entry_sizes = true
が必要なのですが、 v1.3.0の時点ではデフォルト値が false
になっていて有効になっていないためです
詳しくはこのPRを見てください
ではどうすればいいか?
明示的に Zip.validate_entry_sizes = true
してください。
Railsであれば config/initializers/CVE-2019-16892-rubyzip-patch.rb
のようなファイルを置いておけばいいでしょう
v2.0.0ではデフォルトでONになっていてこのパッチは不要になるので、v2.0.0で使おうとしたらエラーになるようにしています。(モンキーパッチの賞味期限)
FAQ
Q. だったら最初から2.0.0にアプデすればいいのでは?
依存gemのdependencyで ~> 1.3
と書かれていて2系に素直に上げられないケースも多々あるので、rubyzipを直接使ってない限りいきなり2.0.0に上げるのは難しいのではと思います。