bundler-auditで利用しているgemの脆弱性をチェックする

はじめに

Railsでアプリを開発する場合、利用するgemの数が一桁で収まることはないと思います。当然、インストール済みのgemの脆弱性を手作業で確認することは、非常に困難な作業であると思います。これを自動化してくれるgemがbundler-auditです。

実装

bundler-auditをインストールします。

gem install bundler-audit

最新の脆弱性データベースを利用するようにupdateを行います。これを行わないと古いデータベースを参照したままチェックが行われるので、どれだけチェックしても意味がありません。

$ bundle exec bundler-audit update
Updating ruby-advisory-db ...
Cloning into '/path/to/home/.local/share/ruby-advisory-db'...
remote: Counting objects: 3753, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 3753 (delta 3), reused 2 (delta 0), pack-reused 3743
Receiving objects: 100% (3753/3753), 647.49 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1840/1840), done.
Updated ruby-advisory-db
ruby-advisory-db: 320 advisories

利用しているgemの脆弱性をチェックします。

$ bundle exec bundler-audit
Name: nokogiri
Version: 1.8.2
Advisory: CVE-2018-8048
Criticality: Unknown
URL: https://github.com/sparklemotion/nokogiri/pull/1746
Title: Revert libxml2 behavior in Nokogiri gem that could cause XSS
Solution: upgrade to >= 1.8.3

Name: sprockets
Version: 3.7.1
Advisory: CVE-2018-3760
Criticality: Unknown
URL: https://groups.google.com/forum/#!topic/ruby-security-ann/2S9Pwz2i16k
Title: Path Traversal in Sprockets
Solution: upgrade to < 3.0.0, >= 2.12.5, < 4.0.0, >= 3.7.2, >= 4.0.0.beta8

Vulnerabilities found!

どうやらnokogiriとsprocketsが危ういようですね。

ちなみに何も脆弱性が見つからなかった場合は、以下のようになります。

$ bundle exec bundler-audit
No vulnerabilities found

Rails

Posted by poison