Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach OmniAuth request phase unauthenticated
-
DeliverySend request with forged Host/X-Forwarded-Host header
-
ExploitOmniAuth builds callback URL from forged host
-
ExecutionProvider receives redirect_uri on attacker host
-
ImpactAuthorization redirect/code steered off-site
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Origin validation
|
| Exploitation Conditions | Exploitable only when all of these hold: the application uses OmniAuth prior to 2.2.0; it has NOT set a fixed full_host (or, after the fix, allowed_hosts) in its OmniAuth config; and the surrounding web framework does not validate incoming Host headers. OmniAuth derives the callback host from the client-controllable Host, X-Forwarded-Host, or Forwarded header, so a remote unauthenticated attacker can forge it. Limiting factors that reduce real-world exposure: applications on modern Rails with config.hosts host authorization configured, or any app with a fixed full_host, are explicitly not affected; impact is a forged provider redirect_uri rather than direct code execution, and realizing a meaningful redirect/code-theft outcome depends on the OAuth provider and typically a victim completing the flow. The mitigation stated by the vendor is to set full_host (or the new allowed_hosts) and to upgrade to 2.2.0. |
| Impact | This is a genuine but moderate, configuration-dependent weakness (CWE-346 origin/host validation) rather than a drop-everything emergency. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) scores 6.9 (medium) with only low vulnerable- and subsequent-system integrity/confidentiality impact (VC:L/VI:L/SI:L, VA/SA/SC none), which matches a host-header-injection flaw whose worst outcome is a forged provider redirect_uri rather than code execution or full account takeover. The vuln.today priority is 'this_month', not act_now/emergency, and the input contains no EPSS score and no KEV listing, so there is no signal of active or widespread exploitation. The PoC situation is limited to the GitHub Security Advisory and the fix commit - a public PoC reference exists; it is not verified as working exploit code - so exploitation is best described as no public exploit identified at time of analysis. The key caveat that must not be read as confirmed fact: the flaw only applies 'when neither a fixed full_host nor framework-level incoming host validation is configured,' so real-world risk hinges entirely on deployment configuration, and applications using Rails host authorization (config.hosts) or a fixed full_host are explicitly not affected. EPSS and KEV data are both absent from the input, which should be treated as missing signals, not as evidence of safety. |
| Exploit ScenarioDerived | An application uses OmniAuth behind a web framework that does not validate incoming Host headers and has not set full_host or allowed_hosts. During the OAuth request phase a remote unauthenticated attacker supplies a forged Host (or X-Forwarded-Host / Forwarded) header, causing OmniAuth to build a callback redirect_uri pointing at an attacker-controlled host, which can be used to send the provider a redirect on someone else's site. No confirmed working exploit code is published - only the advisory and fix commit are referenced - and the CVSS vector indicates a network, low-complexity, no-privilege path. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 04, 2026
Host header injection in OmniAuth before 2.2.0 allows a remote unauthenticated client to forge the callback host when an application has neither a fixed full_host nor framework-level Host validation, so the OAuth provider can receive a redirect_uri pointing at an attacker-chosen host. The independent assessment rates this configuration-dependent issue as moderate (CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N) because modern Rails with config.hosts or any app with a fixed full_host is not affected, and meaningful redirect or code-theft impact depends on the provider and usually a victim completing the flow. No CISA KEV confirmation is present and no public exploit identified at time of analysis; the vendor fix is OmniAuth 2.2.0.
RemediationAI
Vendor-released patch: OmniAuth 2.2.0. Upgrade to that version, then set OmniAuth.config.full_host to a fixed HTTPS URL (for example 'https://example.com') or set OmniAuth.config.allowed_hosts to the exact hostnames or regexps the app serves; requests whose host does not match will fail with invalid_host, so include every legitimate host to avoid breaking multi-host or tenant deployments. The vendor-documented workaround for older versions is to set full_host in the OmniAuth config; alternatively ensure the web framework or front-end proxy validates incoming Host headers, as with Rails config.hosts, and be aware that a fixed full_host can be unsuitable for apps legitimately serving multiple callback hosts. Advisory: https://github.com/omniauth/omniauth/security/advisories/GHSA-m27g-v28p-f9fx and fix commit https://github.com/omniauth/omniauth/commit/943b44faea242f063fa9230254fe7d60cfcc9c90.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in rubygems
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CWE-346 origin validation error in the OmniAuth Rack middleware. Before 2.2.0, OmniAuth builds callback URLs from request.host derived from the Host, X-Forwarded-Host, or Forwarded header when no full_host is configured; a forged header makes the provider receive a redirect_uri on another host. The commit adds OmniAuth.config.allowed_hosts (strings matched case-insensitively against the whole host, regexps matched against the whole host), causes the request and callback phases to fail with invalid_host when allowed_hosts is configured and the request host is not allowed, and logs a warning at the request phase until full_host or allowed_hosts is set. Applications using appropriately configured Rails host authorization (config.hosts) or a fixed full_host bypass this path; the trigger is specifically the request-controlled host header, not a code execution primitive. Published CVSS 4.0 is 6.9; the independent CVSS 3.1 assessment is AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N, reflecting limited confidentiality and integrity impact and a victim-dependent outcome.
Know when Omniauth gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:L/SA:N
Network, no-auth header forgery, but AC:H and UI:R because it requires missing host validation/full_host plus a victim auth flow to realize the forged redirect; only limited C/I impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
OmniAuth is a flexible authentication system utilizing Rack middleware. Prior to 2.2.0, OmniAuth derives provider callback URLs from request-controlled host information when neither a fixed full_host nor framework-level incoming host validation is configured. A remote unauthenticated client can supply a forged Host header, creating a host header injection risk in applications whose web framework does not verify incoming host headers. Applications using appropriately configured Rails host authorization or a fixed full_host are not affected by this path. This issue is fixed in version 2.2.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
ruby-saml provides security assertion markup language (SAML) single sign-on (SSO) for Ruby. Rated critical severity (CVS
The Ruby SAML library is for implementing the client side of a SAML authorization. Rated critical severity (CVSS 9.8), t
ruby-saml provides security assertion markup language (SAML) single sign-on (SSO) for Ruby. Rated critical severity (CVS
ruby-saml provides security assertion markup language (SAML) single sign-on (SSO) for Ruby. Rated high severity (CVSS 7.
omniauth-microsoft_graph provides an Omniauth strategy for the Microsoft Graph API. Rated high severity (CVSS 8.6), this
EUVD-2026-117054
GHSA-m27g-v28p-f9fx
NVD
CVE.org
EPSS
VulDB
Exploit-DB