CVE-2021-22942
UNKNOWN
Published 2021-10-18T00:00:00
Actions:
Expert Analysis
Professional remediation guidance
Get tailored security recommendations from our analyst team for CVE-2021-22942. We'll provide specific mitigation strategies based on your environment and risk profile.
No CVSS data available
Description
A possible open redirect vulnerability in the Host Authorization middleware in Action Pack >= 6.0.0 that could allow attackers to redirect users to a malicious website.
Available Exploits
No exploits available for this CVE.
Related News
No news articles found for this CVE.
GitHub Security Advisories
Community-driven vulnerability intelligence from GitHub
Advisory Details
# Overview
There is a possible open redirect vulnerability in the Host Authorization middleware in Action Pack. This vulnerability has been assigned the CVE identifier CVE-2021-22942.
Versions Affected: >= 6.0.0.
Not affected: < 6.0.0
Fixed Versions: 6.1.4.1, 6.0.4.1
# Impact
Specially crafted “X-Forwarded-Host” headers in combination with certain “allowed host” formats can cause the Host Authorization middleware in Action Pack to redirect users to a malicious website.
Impacted applications will have allowed hosts with a leading dot. For example, configuration files that look like this:
```ruby
config.hosts << '.EXAMPLE.com'
```
When an allowed host contains a leading dot, a specially crafted Host header can be used to redirect to a malicious website.
This vulnerability is similar to CVE-2021-22881, but CVE-2021-22881 did not take in to account domain name case sensitivity.
# Releases
The fixed releases are available at the normal locations.
# Workarounds
In the case a patch can’t be applied, the following monkey patch can be used in an initializer:
```ruby
module ActionDispatch
class HostAuthorization
HOSTNAME = /[a-z0-9.-]+|\[[a-f0-9]*:[a-f0-9.:]+\]/i
VALID_ORIGIN_HOST = /\A(#{HOSTNAME})(?::\d+)?\z/
VALID_FORWARDED_HOST = /(?:\A|,[ ]?)(#{HOSTNAME})(?::\d+)?\z/
private
def authorized?(request)
origin_host =
request.get_header("HTTP_HOST")&.slice(VALID_ORIGIN_HOST, 1) || ""
forwarded_host =
request.x_forwarded_host&.slice(VALID_FORWARDED_HOST, 1) || ""
@permissions.allows?(origin_host) &&
(forwarded_host.blank? || @permissions.allows?(forwarded_host))
end
end
end
```
Affected Packages
RubyGems
actionpack
ECOSYSTEM:
≥6.0.0
<6.0.4.1
RubyGems
actionpack
ECOSYSTEM:
≥6.1.0
<6.1.4.1
CVSS Scoring
CVSS Score
5.0
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
References
PACKAGE
https://github.com/rails/rails
Advisory provided by GitHub Security Advisory Database. Published: August 26, 2021, Modified: February 2, 2024
References
HackerOne Reports
The Host Authorization middleware in Action Pack is vulnerable to crafted X-Forwarded-Host values
Medium
mshtawythug
Internet Bug Bounty
Open Redirect
Published: 2021-10-18T00:00:00
Last Modified: 2024-08-03T18:58:26.009Z
Copied to clipboard!