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

Posted

技术标签:

【中文标题】Github 警告关于 Omniauth gem 的安全问题【英文标题】:Github warns security problem about Omniauth gem 【发布时间】:2019-11-04 20:10:09 【问题描述】:

我正在使用 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.

但是,我似乎使用的是latest version

有什么可能的解决方法,还是我现在应该跳过这个?

【问题讨论】:

请不要包含明文截图。将文本复制并粘贴到您的帖子中,以使您的帖子可搜索并且对可能无法加载图片的用户可见。 【参考方案1】:

这已在omniauth/omniauth issue 960 中报告并在PR 809 "Protect request phase against CSRF when Rails is used. " 中讨论

It includes:

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

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

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

gem "omniauth-rails_csrf_protection"

或者...coreinfrastructure/best-practices-badge PR 1298

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

omniauth 的人还在讨论如何修复它,我的耐心已经耗尽。

我查看了 shim 代码,没有发现任何问题。这是一个允许帐户接管的漏洞,因此我认为忽略它是非常不明智的。这不是微不足道的,但它是真实的。

【讨论】:

我安装了 gem "omniauth-rails_csrf_protection" 并将代码推送到存储库,但问题仍然存在。我的存储库是:github.com/mhamzajutt96/sportscenter/network/alerts @MuhammadHamza 奇怪。也许您可以在我在回答开头提到的一个问题中报告它。 但是issue已经打开了,再打开有什么区别 @MuhammadHamza 不要再次打开它,而是添加,作为评论,您的问题的证词(详细信息,版本,操作系统,...)表示问题尚未解决。

以上是关于Github 警告关于 Omniauth gem 的安全问题的主要内容,如果未能解决你的问题,请参考以下文章

使用omniauth-twitter / twitter Gem读取Twitter REST API的x-access-Level标头

使用 Steam OmniAuth gem 连接 Steam 的 OpenId 会出现“invalid_credentials”错误

Salesforce 错误 - “无效的交叉引用 ID”

设计Facebook参数app_id是必需的

在rake测试中排除gem警告而不从自己的代码中删除警告

ruby 最简单的OmniAuth开发人员策略实现(OmniAuth :: Strategies :: Developer)。 http://www.rubydoc.info/github/intri