Contest Gallery <= 30.0.2 — Authenticated (Author+) Privilege Escalation via 'RegistryUserRole' Parameter
CVE-2026-12165Published · Updated Action summary
Affected: ≤30.0.2Update to 30.0.3 or newer
All remediation steps- Severity
- High8.8
- CVSS
- 8.8CVSS 3.1 · CNA (Wordfence)
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HWhat does this vector mean?
AV:NAttack vector- Network
AC:LAttack complexity- Low
PR:LPrivileges required- Low
UI:NUser interaction- None
S:UScope- Unchanged
C:HConfidentiality- High
I:HIntegrity- High
A:HAvailability- High
- Weakness
- CWE-269 Privilege Escalation
- Required access
- Unknown
- Exploit prediction (EPSS)
- No score
- CISA KEV
- Not listed
On this page8
Am I affected?
Contest Gallery Commerce – Upload, Vote & Sell with PayPal & Stripe contest-gallery
- Affected≤ 30.0.2
- Patched in30.0.3
Update to 30.0.3 or newer.
You are affected if you run ≤ 30.0.2. Version 30.0.3 and later are not affected by this issue.
- Check your version: in wp-admin go to Plugins → Installed Plugins and read the version under Contest Gallery Commerce – Upload, Vote & Sell with PayPal & Stripe.
- No admin access? Run a passive check of your site. It reads public files only.
What to do
- Update to version 30.0.3, or a newer patched version
- Rotate administrator passwords and application secrets if the site ran a vulnerable version while publicly reachable.
- Watch Contest Gallery Commerce – Upload, Vote & Sell with PayPal & Stripe to get an email when the next vulnerability is published.
Advisory
Source description from Wordfence Intelligence, credited to Chloe Chamberland, Wordfence PRISM.
The Contest Gallery – Upload & Vote Photos, Media, Sell with PayPal & Stripe plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 30.0.2 via the `RegistryUserRole` parameter. This is due to the plugin's admin menu being registered at the `edit_posts` capability level — granting Contributor-level users access to the plugin's admin pages and a valid `cg_admin` nonce — while the option-saving handler in `change-options-and-sizes.php` performs no `current_user_can()` capability check beyond `check_admin_referer('cg_admin')`, and the `RegistryUserRole` value is processed only through `sanitize_text_field()` and `htmlentities()` without restriction to an allowlist of permitted role names. This makes it possible for authenticated attackers, with author-level access and above, to overwrite the plugin's stored `RegistryUserRole` option with `administrator`, which the `cg_create_wp_user_from_google_user` function then reads back from the `contest_gal1ery_registry_and_login_options` database table without any allowlist validation and passes directly to `wp_update_user()`, effectively promoting a newly registered Google sign-in account to Administrator.
Exploits & references
Proof-of-concept & detection
No public proof-of-concept or detection template is known for this vulnerability.
Advisories & patches
- Advisorywordfence.com
Related CVEs
More in Contest Gallery Commerce – Upload, Vote & Sell with PayPal & Stripe
All 70| Severity | Vulnerability | CVE | Published |
|---|---|---|---|
| High8.8 | Authenticated (Author+) Arbitrary File Upload <34.0.3Update to 34.0.3 | CVE-2026-118041 | |
| Medium5.3 | Missing Authorization <34.0.1Update to 34.0.1 | CVE-2026-107447 | |
| Medium6.4 | Authenticated (Subscriber+) Stored Cross-Site Scripting ≤34.0.1Update to 34.0.2 | CVE-2026-111837 | |
| Medium5.3 | Unauthenticated Unauthorized Account Activation ≤33.0.0Update to 33.0.1 | CVE-2026-107120 | |
| High8.8 | Unauthenticated Arbitrary File Upload via 'baseUrlForFacebook' Parameter ≤32.0.1Update to 33.0.0 | CVE-2026-78088 |
- High8.8Authenticated (Author+) Arbitrary File Upload
<34.0.3Update to 34.0.3
- Medium5.3Missing Authorization
<34.0.1Update to 34.0.1
- Medium6.4Authenticated (Subscriber+) Stored Cross-Site Scripting
≤34.0.1Update to 34.0.2
- Medium5.3Unauthenticated Unauthorized Account Activation
≤33.0.0Update to 33.0.1
- High8.8Unauthenticated Arbitrary File Upload via 'baseUrlForFacebook' Parameter
≤32.0.1Update to 33.0.0
Same weakness (Privilege Escalation)
All Privilege Escalation| Severity | Vulnerability | CVE | Published |
|---|---|---|---|
| High7.2 | Unauthenticated Stored Cross-Site Scripting via Comment User-Agent Header | CVE-2026-120688 | |
| Critical9.8 | Unauthenticated Arbitrary File Upload via File Upload via Public Form Submission | CVE-2026-125055 | |
| Critical9.8 | Unauthenticated PHP Object Injection to Remote Code Execution via 'form' Parameter | CVE-2026-119077 | |
| Medium5.3 | Unauthenticated Sensitive Information Exposure in 'search' Parameter | CVE-2026-121518 |
- High7.2Unauthenticated Stored Cross-Site Scripting via Comment User-Agent Header
EZ SQL Reports Shortcode Widget and DB Backup
≤5.25.25Update to 5.26.45
- Critical9.8Unauthenticated Arbitrary File Upload via File Upload via Public Form Submission
Chatterbug Forms – Fast, Flexible WordPress Form Builder
≤1.0.2Update to 1.1
- Critical9.8Unauthenticated PHP Object Injection to Remote Code Execution via 'form' Parameter
ELEX WordPress HelpDesk & Customer Ticketing System
≤3.3.9Update to 3.4.0
- Medium5.3Unauthenticated Sensitive Information Exposure in 'search' Parameter
Customer Reviews for WooCommerce
≤5.127.0Update to 5.128.0
Timeline
CVE published
Severity high, CVSS 8.8
Record last updated
Sources & licenses
Wordfence record- Vulnerability data
- Wordfence Intelligence. [object Object] Licensed under the CC BY-SA 4.0.
- CVE® identifiers
- [object Object]. Used under the CVE Program. CVE® is a registered trademark of The MITRE Corporation.
- CVSS / CWE
- National Vulnerability Database (NVD), shown unmodified. This product uses the NVD API but is not endorsed or certified by the NVD.
- VulnCrest content
- Summary, remediation guidance and page layout © VulnCrest. Not sourced from NVD.
