CVE-2017-18076
Description
In strategy.rb in OmniAuth before 1.3.2, the authenticity_token value is improperly protected because POST (in addition to GET) parameters are stored in the session and become available in the environment of the callback phase.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
OmniAuth before 1.3.2 stores POST parameters including authenticity_token in the session, leaking them into the callback phase.
Vulnerability
In OmniAuth versions before 1.3.2, the strategy.rb file uses request.params to store parameters into the session under the key 'omniauth.params'. Because request.params includes both GET and POST parameters, the authenticity_token value (or other sensitive data submitted via POST) is persisted in the session and remains accessible in the environment during the callback phase. This affects all OmniAuth versions prior to 1.3.2. [1][2][4]
Exploitation
An attacker does not need direct network access to the victim's session; the vulnerability is triggered simply by the normal OAuth flow where a user submits a POST request containing sensitive parameters (such as authenticity_token) during the request phase. The parameters are stored in the session server-side and then exposed in the callback phase environment. No special authentication or user interaction beyond the standard OAuth login flow is required. [1][2][4]
Impact
Sensitive POST parameters, including CSRF tokens like authenticity_token, are unintentionally retained in the session and made available during the callback phase. This could lead to information disclosure of tokens meant to be transient, potentially enabling cross-site request forgery attacks or other session-based exploits that rely on token reuse. The scope is limited to the parameters that are submitted via POST, but the exposure occurs regardless of whether the application intends to store them. [2][4]
Mitigation
The fix is included in OmniAuth version 1.3.2, released on July 3, 2017. The patch changes session['omniauth.params'] = request.params to session['omniauth.params'] = request.GET, ensuring only GET parameters are stored in the session. Users should upgrade to OmniAuth 1.3.2 or later. No workaround is documented for versions prior to 1.3.2. [2][4]
AI Insight generated on May 22, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
omniauthRubyGems | < 1.3.2 | 1.3.2 |
Affected products
1Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
7- github.com/advisories/GHSA-9pr6-grf4-x2frghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2017-18076ghsaADVISORY
- www.debian.org/security/2018/dsa-4109ghsavendor-advisoryx_refsource_DEBIANWEB
- bugs.debian.org/888523ghsax_refsource_CONFIRMWEB
- github.com/omniauth/omniauth/pull/867ghsax_refsource_CONFIRMWEB
- github.com/omniauth/omniauth/pull/867/commits/71866c5264122e196847a3980c43051446a03e9bghsax_refsource_CONFIRMWEB
- github.com/rubysec/ruby-advisory-db/blob/master/gems/omniauth/CVE-2017-18076.ymlghsaWEB
News mentions
0No linked articles in our index yet.