Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Network-reachable wp-admin endpoint, low-complexity option overwrite by a Contributor/Author (PR:L), no admin interaction, and Administrator promotion yields full C/I/A impact within the WordPress scope.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
Lifecycle Timeline
2DescriptionCVE.org
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.
AnalysisAI
Privilege escalation in the Contest Gallery WordPress plugin (versions ≤ 30.0.2) allows authenticated Contributor/Author-level users to overwrite the stored RegistryUserRole option to 'administrator', causing newly registered Google sign-in accounts to be promoted to Administrator. The flaw was disclosed by Wordfence and stems from a missing capability check in the option-saving handler; no public exploit identified at time of analysis.
Technical ContextAI
The vulnerable component is a WordPress plugin (CPE: contest-gallery:contest_gallery_-_upload_&_vote_photos,_media,_sell_with_paypal_&_stripe) written in PHP that integrates Google sign-in for user registration. The root cause is CWE-269 (Improper Privilege Management): the admin menu is registered at the edit_posts capability - granting Contributor+ users a valid cg_admin nonce - while the handler in v10/v10-admin/options/change-options-and-sizes.php gates writes solely on check_admin_referer('cg_admin') with no current_user_can() check. The RegistryUserRole input is filtered only through sanitize_text_field() and htmlentities(), not constrained to an allowlist of WordPress roles, and is later read back from the contest_gal1ery_registry_and_login_options table and passed directly into wp_update_user() by cg_create_wp_user_from_google_user().
RemediationAI
Upstream fix available (commit/changeset 3571733 in the contest-gallery plugin repository); released patched version not independently confirmed from the supplied references - administrators should update to the next plugin release above 30.0.2 once published on wordpress.org and verify via the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/69b909da-b1b0-4dab-916c-908511f6556f. Until a tagged release is available, restrict Contributor/Author accounts to trusted users, disable open user registration or lower the default new-user role to Subscriber, and disable the plugin's Google sign-in registration feature so that a tampered RegistryUserRole cannot be consumed by cg_create_wp_user_from_google_user() - the trade-off is loss of Google login UX. Optionally block access to the plugin's admin pages under v10/v10-admin/options/ via a WAF rule or web-server ACL for non-Administrator users, accepting that this may interfere with legitimate plugin administration.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
Same weakness CWE-269 – Improper Privilege Management
View allSame technique Privilege Escalation
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-37586