HexBrain

Browse / CVEs / CVE-2022-41697

CVE-2022-41697· ghost / ghost· CWE-204

Ghost CMS - User Enumeration

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

Ghost CMS 5.9.4 contains a user enumeration vulnerability in the login functionality. The application reveals whether a user account exists through different error messages, allowing attackers to enumerate valid user accounts via specially-crafted HTTP requests.

Impact

Attackers can identify valid usernames/email addresses, facilitating targeted attacks such as phishing, credential stuffing, or brute-force password attacks.

Fix

Update to the latest version of Ghost CMS or apply security patches that implement consistent error messages regardless of whether the user exists.

How to confirm it

Send: POST /ghost/api/admin/session
Positive when: contains_all(body, "There is no user with that email address", "NotFoundError") and contains(content_type, "application/json") and !contains(body, "Resource not found") and status_code == 404

Run it with nuclei: nuclei -id CVE-2022-41697 -u <target>

The full check
id: CVE-2022-41697

info:
  name: Ghost CMS - User Enumeration
  author: ritikchaddha
  severity: medium
  description: |
    Ghost CMS 5.9.4 contains a user enumeration vulnerability in the login functionality. The application reveals whether a user account exists through different error messages, allowing attackers to enumerate valid user accounts via specially-crafted HTTP requests.
  impact: |
    Attackers can identify valid usernames/email addresses, facilitating targeted attacks such as phishing, credential stuffing, or brute-force password attacks.
  remediation: |
    Update to the latest version of Ghost CMS or apply security patches that implement consistent error messages regardless of whether the user exists.
  reference:
    - https://talosintelligence.com/vulnerability_reports/TALOS-2022-1625
    - https://nvd.nist.gov/vuln/detail/CVE-2022-41697
    - https://github.com/tryghost/ghost
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
    cvss-score: 5.3
    cve-id: CVE-2022-41697
    cwe-id: CWE-204
    epss-score: 0.20041
    epss-percentile: 0.97464
  metadata:
    verified: true
    max-request: 1
    vendor: ghost
    product: ghost
    shodan-query: http.component:"ghost"
    fofa-query: app="Ghost"
  tags: cve,cve2022,ghost,enum,disclosure,vuln

http:
  - raw:
      - |
        POST /ghost/api/admin/session HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {"username":"{{randstr}}@example.com","password":"{{randstr}}"}

    matchers-condition: and
    matchers:
      - type: dsl
        dsl:
          - 'contains_all(body, "There is no user with that email address", "NotFoundError")'
          - 'contains(content_type, "application/json")'
          - '!contains(body, "Resource not found")'
          - 'status_code == 404'
        condition: and

References

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