HexBrain

Browse / CVEs / CVE-2021-29622

CVE-2021-29622· prometheus / prometheus· CWE-601

Prometheus - Open Redirect

mediumseverity
6.1CVSS score
19.6%likelihood of exploitation, next 30 days
97%of all CVEs are less likely
Readycheck to confirm it

Prometheus 2.23.0 through 2.26.0 and 2.27.0 contains an open redirect vulnerability. To ensure a seamless transition to 2.27.0, the default UI was changed to the new UI with a URL prefixed by /new redirect to /. Due to a bug in the code, 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 exploit this vulnerability to redirect users to malicious websites, leading to potential phishing attacks or the disclosure of sensitive information.

Fix

The issue was patched in the 2.26.1 and 2.27.1 releases. In 2.28.0, the /new endpoint will be removed completely. The workaround is to disable access to /new via a reverse proxy in front of Prometheus.

How to confirm it

Send: GET {{BaseURL}}/new/newhttp://interact.sh
Positive when: matches in header /(?m)^(?:Location\s*?:\s*?)(?:https?://|//)?(?:[a-zA-Z0-9\-_\.@]*)interact\.sh.*$/

Run it with nuclei: nuclei -id CVE-2021-29622 -u <target>. This check is not marked as verified by its authors.

The full check
id: CVE-2021-29622

info:
  name: Prometheus - Open Redirect
  author: geeknik
  severity: medium
  description: Prometheus 2.23.0 through 2.26.0 and 2.27.0 contains an open redirect vulnerability. To ensure a seamless transition to 2.27.0, the default UI was changed to the new UI with a URL prefixed by /new redirect to /. Due to a bug in the code, 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 exploit this vulnerability to redirect users to malicious websites, leading to potential phishing attacks or the disclosure of sensitive information.
  remediation: The issue was patched in the 2.26.1 and 2.27.1 releases. In 2.28.0, the /new endpoint will be removed completely. The workaround is to disable access to /new via a reverse proxy in front of Prometheus.
  reference:
    - https://github.com/prometheus/prometheus/security/advisories/GHSA-vx57-7f4q-fpc7
    - https://github.com/prometheus/prometheus/releases/tag/v2.26.1
    - https://github.com/prometheus/prometheus/releases/tag/v2.27.1
    - https://nvd.nist.gov/vuln/detail/CVE-2021-29622
    - https://github.com/d4n-sec/d4n-sec.github.io
  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-29622
    cwe-id: CWE-601
    epss-score: 0.1956
    epss-percentile: 0.97403
    cpe: cpe:2.3:a:prometheus:prometheus:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: prometheus
    product: prometheus
  tags: cve2021,cve,prometheus,redirect,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/new/newhttp://interact.sh"

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

References

Use this check only on systems you are authorised to test. Where the data comes from