Browse / CVEs / CVE-2022-41697
CVE-2022-41697· ghost / ghost· CWE-204
Ghost CMS - User Enumeration
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 == 404Run 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: andReferences
- https://talosintelligence.com/vulnerability_reports/TALOS-2022-1625
- https://nvd.nist.gov/vuln/detail/CVE-2022-41697
- https://github.com/tryghost/ghost
Use this check only on systems you are authorised to test. Where the data comes from