Github警告有关Omniauth gem的安全问题

quy*_*tdc 5 ruby ruby-on-rails github

我正在使用gem omniauth,当我将代码推送到Github时,由于使用gem ,它向我显示了安全警告。

CVE-2015-9284 
high severity
Vulnerable versions: <= 1.9.0
Patched version: No fix
The request phase of the OmniAuth Ruby gem is vulnerable to Cross-Site Request Forgery when used as part of the Ruby on Rails framework, allowing accounts to be connected without user intent, user interaction, or feedback to the user. This permits a secondary account to be able to sign into the web application as the primary account.
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

但是,看来我使用的是最新版本 在此处输入图片说明

有没有可能的解决方法,还是我现在应该跳过此步骤?

Von*_*onC 4

这已在omniauth/omniauth 第 960 期中报告,并在PR 809“使用 Rails 时保护请求阶段免受 CSRF 影响”中进行了讨论。

这包括

因此,我们已经实现了该omniauth-rails_csrf_protection解决方案,但之前我们让第 3 方 OAuth 提供商在验证注册后让人们登录并将他们重定向到我们的/auth/provider端点。
现在,这需要他们使用 CSRF 令牌 POST 到端点,这是不可能的,因为它们位于单独的平台/系统上。

是否应该更新omniauth自述文件以提及任何使用带有rails的omniauth的人也应该使用omniauth-rails_csrf_protection

请参阅提交 0264706作为使用该设置的示例。

gem "omniauth-rails_csrf_protection"
Run Code Online (Sandbox Code Playgroud)

或者...核心基础设施/最佳实践徽章 PR 1298

我讨厌引入第三方 shim 来修复安全问题,但上游omniauth仍然没有修复其漏洞,而且这是 4 年前(2015 年)的 CVE 报告。

Omniauth 的人们仍在讨论如何修复它,我的耐心已经耗尽。

我检查了 shim 代码,没有发现任何问题。这是一个允许帐户被接管的漏洞,因此我认为忽略它是极其不明智的。利用它并不容易,但它是真实的。