Description
The Beyondseo plugin for WordPress is vulnerable to unauthorized access in versions up to, and including, 1.3.6. This is due to the plugin permanently granting the 'rankingcoach_write_redirectManager' (and sibling rankingcoach_write_* module capabilities) to the Contributor role via BaseModule::defineCapabilities(), whose default role list includes 'contributor', combined with the module's REST endpoints (registered through BaseSubmoduleApi::registerRouteCreate/registerRouteEdit/registerRouteDelete) authorizing state-changing requests solely through checkPermissionsPost(), which only calls current_user_can('rankingcoach_write_<module>') and performs no admin capability, ownership, or additional nonce check inside the callback. This makes it possible for authenticated attackers, with Contributor-level access and above, to elevate their privileges to effectively that of an Administrator with respect to site-wide redirect management — creating, updating, or deleting 301/302 redirects that RedirectManagerHooks::handleRedirects() executes for every frontend visitor on template_redirect, allowing hijacking of arbitrary paths (including /checkout, /wp-login.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
rankingcoach BeyondSEO – AI SEO to Improve Rankings, Listings & Online Visibility
Default version status: unaffected
0 to ≤ 1.3.6affected
References
- https://www.wordfence.com/threat-intel/vulnerabilities/id/dd4b2396-288f-45e6-b911-b017dc8d0526?source=cve ↗
- https://plugins.trac.wordpress.org/browser/beyondseo/tags/1.3.1/inc/Modules/ModuleBase/BaseModule.php#L249 ↗
- https://plugins.trac.wordpress.org/browser/beyondseo/tags/1.3.1/inc/Modules/ModuleLibrary/Links/RedirectManager/RedirectManager.php#L67 ↗
- https://plugins.trac.wordpress.org/browser/beyondseo/tags/1.3.1/inc/Modules/ModuleBase/BaseSubmoduleApi.php#L289 ↗
- https://plugins.trac.wordpress.org/browser/beyondseo/tags/1.3.1/inc/Modules/ModuleLibrary/Links/RedirectManager/RedirectManagerApi.php#L266 ↗
- https://plugins.trac.wordpress.org/browser/beyondseo/tags/1.3.1/inc/Modules/ModuleLibrary/Links/RedirectManager/RedirectManagerHooks.php#L51 ↗
- https://plugins.trac.wordpress.org/changeset?reponame=&old=3722492%40beyondseo&new=3722492%40beyondseo ↗