Contest Gallery <= 30.0.2 - Authenticated (Author+) Privilege Escalation via 'RegistryUserRole' Parameter
Strategic Overview
- Status
- Patched in 30.0.3
- Affected Version
<= 30.0.2- CVSS
- 8.8High
- Weakness type
- CWE-269 · Improper Privilege Management
- CVE
CVE-2026-12165
At a glance
CVE-2026-12165 is a high-severity Improper Privilege Management vulnerability in the Contest Gallery WordPress plugin, affecting versions <= 30.0.2. It carries a CVSS score of 8.8 (reachable over the network; low attack complexity; high confidentiality, integrity, availability impact). Exploitation requires an authenticated account at Author level or above. The issue is fixed in version 30.0.3; sites on affected versions should update now. Disclosed June 2026, reported by Chloe Chamberland.
Vulnerability Overview
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.
Technical Analysis
The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no interaction from a victim user. A successful exploit has high impact on confidentiality, integrity, availability — full site compromise territory.
CWE-269: Improper Privilege Management
Contest Gallery <= 30.0.2 carries this weakness at cg_admin, and reaching it takes an account at Author level or above. Improper privilege management means the code lets an account end up with capabilities its role should not have.
It converts a low-privileged account into an administrative one, which makes every other restriction on the site irrelevant. For Contest Gallery the fix is 30.0.3: builds <= 30.0.2 are affected, anything from 30.0.3 onward is not.
Remediation
Update to version 30.0.3, or a newer patched version
How does WordSec protect against this?
Because it turns on account access, WordSec's login security is the relevant layer: role-based two-factor, captcha and brute-force limits raise the cost of getting the account this needs. None of that substitutes for the fix: Contest Gallery 30.0.3 closes this, and updating the plugin is the step that ends it.
- Login Security
- Alerts
External References
Related records
Other vulnerabilities in Contest Gallery – Upload & Vote Photos, Media, Sell with PayPal & Stripe
- 9.9CVE-2024-30238: Photos and Files Contest Gallery SQL Injection
CVE-2024-30238 - 9.9CVE-2024-30236: Photos and Files Contest Gallery SQL Injection
CVE-2024-30236 - 9.8CVE-2024-11103: Contest Gallery Arbitrary Password Reset
CVE-2024-11103 - 9.8CVE-2024-10687: Photos, Files, YouTube, Twitter… SQL Injection
CVE-2024-10687 - 9.8CVE-2021-24915: Contest Gallery SQL Injection
CVE-2021-24915 - 8.8CVE-2022-4150: Contest Gallery (Pro) <= 19.1.5 SQL Injection
CVE-2022-4150 - 8.8CVE-2022-36394: Contest Gallery <= 17.0.4 SQL Injection
CVE-2022-36394 - 8.8CVE-2019-5974: Contest Gallery – Photo Contest for WordPress CSRF
CVE-2019-5974
Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C