CVE Catalog

CVE-2026-116624

HighCVSS 8.8
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.50%

43th percentile - higher than 43% of all known CVEs

Summary

The Advanced Members for ACF plugin is vulnerable to Privilege Escalation in all versions up to, and including, 1.3.0 via the acf[_amem_local_user_password] parameter of the [advanced-members-account-password] shortcode form submission. A PHP operator-precedence bug in pre_update_value causes the authorization check to pass for any logged-in user, and wp_update_user() unconditionally targets the primary administrator account (ID 1). Authenticated attackers with Subscriber-level access can overwrite the administrator's password.

Risk Assessment

Potential administrator account takeover and full site control by a low-privileged user. Critical risk to integrity and confidentiality.

Recommendation

Update the plugin to a version later than 1.3.0 or disable it. Restrict registration of low-privileged users.

Other vulnerabilities in Advanced Members for ACF

Original NVD description (English source)

The Advanced Members for ACF plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 1.3.0 via the `acf[_amem_local_user_password]` parameter of the `[advanced-members-account-password]` shortcode form submission. This is due to a PHP operator-precedence bug in the `pre_update_value` function of `acf/fields/class-user-password.php` that assigns boolean `true` instead of the resolved user ID to `$user_id`, causing the `_can_edit()` authorization check to pass for any logged-in user via PHP loose equality, and causing `wp_update_user()` to cast `'ID' => true` to integer `1` — unconditionally targeting the primary administrator account. This makes it possible for authenticated attackers, with Subscriber-level access and above, to overwrite the password of user ID 1 (the site's primary administrator) with an attacker-chosen value, granting full administrative access to the site. The intended exclusion guard in `Account::process` that strips the password field before saving is defeated because `amem_save_all_fields()` re-reads the full field list from `amem()->submission` and silently overwrites the caller-supplied excluded fields array with an empty array, ensuring the password field is always processed.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS