CVE-2026-12416: Invoice Generator <= 1.0.0 - Unauthenticated Account Takeover via Weak Password Reset Validation via 'reset_user_id' Parameter
The Invoice Generator plugin for WordPress is vulnerable to Account Takeover via Password Reset in all versions up to, and including, 1.0.0. This is due to the pravelinvoicechangepassword() function being registered as a nopriv AJAX handler with no nonce verification and no authorization check, and performing a loose equality comparison between the supplied resetactivationcode POST parameter and the target user's stored forgotemail user meta — a check that trivially evaluates to true ('' == '') for any user who has never initiated a forgot-password request, which applies to administrators under normal conditions. This makes it possible for unauthenticated attackers to supply an arbitrary user ID via the resetuserid POST parameter, bypass the activation code check entirely by omitting resetactivationcode, and set the target account's password to an attacker-chosen value, enabling full takeover of any account on the site, including administrator accounts.
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2026-12416?
CVE-2026-12416 has a critical severity score of 9.8.
How do I fix CVE-2026-12416?
To fix CVE-2026-12416, update the Invoice Generator plugin to the latest version beyond 1.0.0.
What type of vulnerability is CVE-2026-12416?
CVE-2026-12416 is an unauthenticated account takeover vulnerability due to weak password reset validation.
Which software is affected by CVE-2026-12416?
CVE-2026-12416 affects the Pravel Invoice Generator plugin for WordPress in versions up to and including 1.0.0.
What does CVE-2026-12416 exploit?
CVE-2026-12416 exploits the lack of nonce verification and authorization checks in the password reset function.