{"id":"CVE-2026-116610","state":"PUBLISHED","title":"Clean Login <= 1.20.1 - Missing Authorization to Authenticated (Contributor+) Arbitrary Clean-Login Option Update via 'save_post' Hook","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.","publishedAt":"2026-10-28T06:45:15.107Z","updatedAt":"2026-10-28T16:09:40.610Z","severity":{"score":4.3,"label":"Medium","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","source":"Wordfence"},"assigner":"Wordfence","products":["hornero Clean Login"],"affected":[{"vendor":"hornero","product":"Clean Login","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThanOrEqual":"1.20.1","versionType":"semver"}]}],"references":["https://www.wordfence.com/threat-intel/vulnerabilities/id/83a8c282-8552-420d-842f-acd235ad61b8?source=cve","https://plugins.trac.wordpress.org/browser/clean-login/tags/1.20.1/include/shortcodes.php#L262","https://plugins.trac.wordpress.org/browser/clean-login/tags/1.20.1/include/shortcodes.php#L14","https://plugins.trac.wordpress.org/changeset/3768058/clean-login","https://plugins.trac.wordpress.org/changeset/3768058/clean-login/trunk/include/shortcodes.php"],"weaknesses":["CWE-862"],"ingestedAt":"2026-10-29T20:10:43.281Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/116xxx/CVE-2026-116610.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-116610","state":"PUBLISHED","datePublished":"2026-10-28T06:45:15.107Z","dateUpdated":"2026-10-28T16:09:40.610Z","assignerShortName":"Wordfence","assignerOrgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","dateReserved":"2026-10-26T16:19:47.437Z"},"containers":{"cna":{"title":"Clean Login <= 1.20.1 - Missing Authorization to Authenticated (Contributor+) Arbitrary Clean-Login Option Update via 'save_post' Hook","descriptions":[{"lang":"en","value":"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."}],"affected":[{"vendor":"hornero","product":"Clean Login","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThanOrEqual":"1.20.1","versionType":"semver"}]}],"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/83a8c282-8552-420d-842f-acd235ad61b8?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/clean-login/tags/1.20.1/include/shortcodes.php#L262"},{"url":"https://plugins.trac.wordpress.org/browser/clean-login/tags/1.20.1/include/shortcodes.php#L14"},{"url":"https://plugins.trac.wordpress.org/changeset/3768058/clean-login"},{"url":"https://plugins.trac.wordpress.org/changeset/3768058/clean-login/trunk/include/shortcodes.php"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","baseScore":4.3,"baseSeverity":"MEDIUM"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-862","lang":"en","description":"CWE-862 Missing Authorization","type":"CWE"}]}],"providerMetadata":{"shortName":"Wordfence","orgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","dateUpdated":"2026-10-28T06:45:15.107Z"},"credits":[{"lang":"en","type":"finder","value":"Wordfence PRISM"}],"timeline":[{"time":"2026-10-26T16:36:06.000Z","lang":"en","value":"Vendor Notified"},{"time":"2026-10-27T17:34:59.000Z","lang":"en","value":"Disclosed"}]},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-10-28T14:36:31.550907Z","id":"CVE-2026-116610","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-28T16:09:40.610Z"}}]}}}