【Rails】gem使ってみたシリーズ 〜bundler-audit編〜 Gemの脆弱性をチェック
はじめに
昨今、React や Node.js で脆弱性が確認されるなど、改めてセキュリティ対策の重要性が高まっています。
Ruby on Rails においても、普段使用している gem に脆弱性が発見されることがあります。
そのため、定期的にアプリケーションで使用している gem の脆弱性をチェックすることは非常に重要です。
今回は、bundler-audit という gem を使って、アプリケーションで使用している gem の脆弱性をチェックする方法をご紹介します。

注意点
環境
bundler-audit とは
bundler-audit とは、Ruby Advisory Database を利用して、Gemfile.lock に記載されている gem の脆弱性をチェックする gem です。
Ruby Advisory Database とは、Ruby に関連するライブラリのセキュリティアドバイザリをまとめたものです。
Ruby Advisory Database、bundler-audit ともに RubySec というセキュリティリソースを提供してくれているコミュニティによって管理されています。
bundler-audit の使い方
まず、bundler-audit をインストールします。
+ gem 'bundler-audit'
docker compose exec app bundle install
次に、bundler-audit のデータベースを更新します。
docker compose exec app bundle exec bundle-audit update
最後に、脆弱性をチェックします。
docker compose exec app bundle exec bundle-audit check
また、bundler-audit のデータベースの更新と脆弱性のチェックを同時に行うこともできます。
docker compose exec app bundle exec bundle-audit check --update
私の検証用のアプリケーションで実行してみました。
docker compose exec app bundle exec bundle-audit check --update
Updating ruby-advisory-db ...
From https://github.com/rubysec/ruby-advisory-db
* branch master -> FETCH_HEAD
Already up to date.
Updated ruby-advisory-db
ruby-advisory-db:
advisories: 1047 advisories
last updated: 2026-01-20 18:50:38 -0800
commit: ac9049718d011cfe7ff242a187a41e5bce41559a
Name: actionpack
Version: 7.0.8.6
CVE: CVE-2024-54133
GHSA: GHSA-vfm5-rmrh-j26v
Criticality: Unknown
URL: https://github.com/rails/rails/security/advisories/GHSA-vfm5-rmrh-j26v
Title: Possible Content Security Policy bypass in Action Dispatch
Solution: update to '~> 7.0.8, >= 7.0.8.7', '~> 7.1.5, >= 7.1.5.1', '~> 7.2.2, >= 7.2.2.1', '>= 8.0.0.1'
Name: activerecord
Version: 7.0.8.6
CVE: CVE-2025-55193
GHSA: GHSA-76r7-hhxj-r776
Criticality: Unknown
URL: https://github.com/rails/rails/security/advisories/GHSA-76r7-hhxj-r776
Title: Active Record logging vulnerable to ANSI escape injection
Solution: update to '~> 7.1.5, >= 7.1.5.2', '~> 7.2.2, >= 7.2.2.2', '>= 8.0.2.1'
~ (省略) ~
Name: uri
Version: 1.0.2
CVE: CVE-2025-61594
GHSA: GHSA-j4pr-3wm6-xx2r
Criticality: Unknown
URL: https://www.ruby-lang.org/en/news/2025/10/07/uri-cve-2025-61594
Title: CVE-2025-61594 - URI Credential Leakage Bypass over CVE-2025-27221
Solution: update to '~> 0.12.5', '~> 0.13.3', '>= 1.0.4'
Vulnerabilities found!
一部省略しましたが、全部で45個の脆弱性が検出されました。
解消するために gem のバージョンアップを行います。(本当は動作確認をしながら慎重にバージョンアップをしないといけませんが、今回は割愛します。)
docker compose exec app bundle update
再度、脆弱性をチェックしてみます。
docker compose exec app bundle exec bundle-audit check --update
Updating ruby-advisory-db ...
From https://github.com/rubysec/ruby-advisory-db
* branch master -> FETCH_HEAD
Already up to date.
Updated ruby-advisory-db
ruby-advisory-db:
advisories: 1047 advisories
last updated: 2026-01-20 18:50:38 -0800
commit: ac9049718d011cfe7ff242a187a41e5bce41559a
No vulnerabilities found
先ほど検出された脆弱性はすべて解消されていることが確認できました。
おわりに
今回は、bundler-audit を使って、アプリケーションで使用している gem の脆弱性をチェックする方法をご紹介しました。
導入も簡単で、定期的にチェックを行うことで、セキュリティリスクを低減することができます。
また、CI/CD パイプラインに組み込むことで、自動的に脆弱性チェックを行うことも可能です。
ぜひ皆さんのアプリケーションにも bundler-audit を導入してみてください。
最後までお読みいただき、ありがとうございました。
Discussion