CVE-2026-14378: DevKit Pro <= 2.3.0 - Unauthenticated Authentication Bypass to Administrator Account Takeover via 'original_user_id' Cookie in Frontend Revert Switch Flow
The DevKit Pro plugin for WordPress is vulnerable to Authentication Bypass Leading to Administrator Account Takeover in all versions up to, and including, 2.3.0 This is due to the revertswitch handler trusting the attacker-controlled originaluserid cookie as the privileged identity: verifynonceandcapability() incorrectly checks the manageoptions capability on the user identified by the cookie rather than on the actual requester via currentusercan(), while the switch-back form and a valid session-bound nonce are emitted publicly via wpfooter to any visitor — including unauthenticated users — whenever that cookie is present. This makes it possible for unauthenticated attackers to set the originaluserid cookie to any administrator's user ID, collect the rendered nonce, and POST it back to the revertswitch handler, causing wpsetauthcookie() to be called with the administrator's ID and granting the attacker a full administrator-level authenticated session and complete site takeover.
Affected Software
Event History
Frequently Asked Questions
Which sites are exposed to unauthenticated takeover?
Any WordPress site running DevKit Pro version 2.3.0 or earlier is affected if its frontend renders the public switch-back form and nonce when an original_user_id cookie is present. An attacker does not need an existing WordPress account.
What does an attacker need to exploit this issue?
The attacker needs to set the original_user_id cookie to an administrator's user ID, obtain the session-bound nonce rendered in the frontend footer, and submit it to the revert_switch handler. The vulnerable capability check trusts the cookie-selected identity rather than verifying the actual requester.
What is the impact of successful exploitation?
Successful exploitation causes WordPress to issue an authenticated session for the selected administrator account. This gives the attacker full administrator-level access and enables complete site takeover.
How can I determine whether exploitation attempts may be occurring?
Look for requests to the revert_switch handler that are preceded by or include an original_user_id cookie set to an administrator user ID, especially from unauthenticated visitors. Also investigate unexpected administrator sessions or administrator-account activity.