Description
The Clean Login plugin for WordPress is vulnerable to Missing Authorization in versions up to, and including, 1.20.1 due to a missing capability check on the CleanLogin_Shortcode::get_pages_with_shortcodes() function hooked to the save_post action. This makes it possible for authenticated attackers, with Contributor-level access and above, to overwrite the plugin's cl_login_url/cl_login_id/cl_register_url/cl_register_id/cl_restore_url/cl_restore_id/cl_edit_url/cl_edit_id/cl_change_password_url/cl_change_password_id options with the ID and permalink of a post they themselves authored — simply by embedding the plugin's shortcodes in their own post content.
References5
- plugins.trac.wordpress.org/browser/clean-login/tags/1.20.1/incl…
- plugins.trac.wordpress.org/browser/clean-login/tags/1.20.1/incl…
- plugins.trac.wordpress.org/changeset/3768058/clean-login
- plugins.trac.wordpress.org/changeset/3768058/clean-login/trunk/…
- www.wordfence.com/threat-intel/vulnerabilities/id/83a8c282-8552…
Metrics
- CVSS 3.1
-
4.3
MEDIUM
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N - EPSS — exploit probability
- 0% percentile: 9 · as of 3 November 2026
- CWE
- CWE-862
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.