VTRyo Blog

一歩ずつ前に進むブログ

Omn​​iAuthのCVE-2015-9284対応に関連して発生するDeviseのYou are using an old OmniAuth version, please ensure you have 1.0.0.pr2 version or later installed.を解消する

環境

対応前

  • omniauth 1.9.1
  • devise 4.7.1
  • omniauth-google-oauth2 0.8.0

対応後

  • omniauth 2.0.4
  • devise 4.8.0
  • omniauth-google-oauth2 1.0

整理する

タイトルだけだと、何言ってんだ別々の問題だろって感じなので、先に問題を整理する。

  • OmniAuthのCVE-2015-9284という脆弱性に関する問題

github.com

  • DeviseのOmniAuthのバージョンをあげてくれという問題
    • You are using an old OmniAuth version, please ensure you have 1.0.0.pr2 version or later installed.

なぜこの2つ問題が一緒に発生するのか。

  1. OmniAuthが<= 1.9.1である場合にCVE-2015-9284の問題がある
  2. OmniAuthのバージョンアップを試みる。Releaseバージョンはv2.x
  3. OmniAuthを2.xにすると、Deviseで「OmniAuthのバージョンが古いので1.0.0.pr2以上にしてくれ」と言われる。いや2.xになってるんだが?

という流れで、この状況が稀によく生まれる(気がする)。

じゃあ1.xを使おうかと思っても、脆弱性の問題を解消できないので2.x以上にする必要がある。

対応

該当のYou are using an old OmniAuth version, please ensure you have 1.0.0.pr2 version or later installed. 関することは、issueにあがっている。

github.com

該当する記述はここ。

ということで、Deviseのバージョンは4.8以上にアップデートしてあげるで確定。

そして当然、OmniAuthも2.xにしても問題ない。

よく考えれば「そらそうよ」って話なのだけど、作業中は「OmniAuthをバージョンアップするとDeviseでOmniAuthが古いというエラーが出る…?」と、謎に混乱したのでまとめておく。