{"id":"CVE-2026-76780","kind":"vulnerability","aliases":["CVE-2026-76780"],"related":[],"title":"Beyondseo WordPress plugin: Contributors can manage site-wide redirects","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.","summary":"Versions up to and including 1.3.6 of the Beyondseo plugin grant the Contributor role capabilities that should be admin-only, so any Contributor can create, edit or delete site-wide 301/302 redirects. An attacker can redirect visitors on any path, including checkout or login pages, to a site they control.","severity":"medium","cvss":6.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["beyondseo","package","self-hosted","wordpress"],"not_affected_if":["no-contributor-users","plugin-not-installed"],"how_to_check":"- Check the installed Beyondseo plugin version in the WordPress admin Plugins screen or with `wp plugin get beyondseo --field=version`\n- Review Contributor and other non-admin user accounts on the site with `wp user list --role=contributor`\n- Look for unexpected redirect rules in the Beyondseo redirect manager screen","fix":"- Update the Beyondseo plugin to a version later than `1.3.6` once the vendor publishes one (unknown from the sources)\n- Until patched, deactivate the plugin or remove Contributor accounts that do not need access\n- Audit existing redirect rules for unexpected targets","status":"open","published_at":"2026-10-28T07:16:49+00:00","first_seen_at":"2026-10-28T07:31:38+00:00","triaged_at":"2026-10-28T07:33:16+00:00","updated_at":"2026-10-28T07:33:16+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-28T07:33:16Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Beyondseo plugin to a version later than `1.3.6` once the vendor publishes one (unknown from the sources)\n- Until patched, deactivate the plugin or remove Contributor accounts that do not need access\n- Audit existing redirect rules for unexpected targets","reach":"internet","title":"Beyondseo WordPress plugin: Contributors can manage site-wide redirects","impact":"medium","summary":"Versions up to and including 1.3.6 of the Beyondseo plugin grant the Contributor role capabilities that should be admin-only, so any Contributor can create, edit or delete site-wide 301/302 redirects. An attacker can redirect visitors on any path, including checkout or login pages, to a site they control.","category":"package","nicknames":[],"who_cares":["wordpress","beyondseo","self-hosted"],"confidence":0.8,"needs_auth":"yes","worst_case":"Contributor redirects visitors from checkout or login pages to attacker sites","analyst_note":"Check the patched version and vendor advisory for Beyondseo 1.3.6 via the NVD link; the sources do not name a fixed version.","how_to_check":"- Check the installed Beyondseo plugin version in the WordPress admin Plugins screen or with `wp plugin get beyondseo --field=version`\n- Review Contributor and other non-admin user accounts on the site with `wp user list --role=contributor`\n- Look for unexpected redirect rules in the Beyondseo redirect manager screen","needs_analyst":true,"not_affected_if":["plugin-not-installed","no-contributor-users"],"who_is_affected":"Sites running the Beyondseo WordPress plugin at version 1.3.6 or earlier, where users with the Contributor role (or higher) exist. The attacker needs a Contributor-level account, so sites with no Contributor users, or with the plugin absent, are not exposed.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"medium"},"cost_usd":0.000707,"input_tokens":3623,"output_tokens":689,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':12A,15A '-76780':13A,16A '/checkout':218C '/wp-login':219C '1.3.6':28B,91C '301/302':55B,199C 'access':84C,174C 'addit':157C 'admin':42B,153C 'admin-on':41B 'administr':186C 'allow':212C 'arbitrari':215C 'attack':58B,169C 'authent':168C 'author':134C 'basemodul':115C 'basesubmoduleapi':132C 'beyondseo':1A,17B,31B,76C 'call':144C 'callback':162C 'capabl':37B,109C,154C 'chang':137C 'check':159C 'checkout':66B 'checkpermissionspost':141C 'combin':123C 'contributor':4A,35B,46B,112C,122C,172C 'contributor-level':171C 'control':74B 'creat':48B,195C 'current':145C 'cve':11A,14A 'default':118C 'definecap':116C 'delet':51B,198C 'due':94C 'edit':49B 'effect':182C 'elev':178C 'endpoint':129C 'everi':206C 'execut':204C 'frontend':207C 'grant':33B,99C 'handleredirect':203C 'hijack':213C 'host':21B 'includ':27B,65B,90C,121C,217C 'insid':160C 'level':173C 'list':120C 'login':68B 'make':164C 'manag':6A,194C 'modul':108C,126C 'nonc':158C 'ownership':155C 'packag':18B 'page':69B 'path':64B,216C 'perform':151C 'perman':98C 'plugin':3A,32B,77C,97C 'possibl':166C 'privileg':180C 'rankingcoach':101C,106C,148C 'redirect':10A,56B,60B,193C,200C,211C 'redirectmanag':103C 'redirectmanagerhook':202C 'regist':130C 'registerroutecreate/registerrouteedit/registerroutedelete':133C 'request':138C 'respect':188C 'rest':128C 'role':36B,113C,119C 'self':20B 'self-host':19B 'sibl':105C 'site':8A,53B,72B,191C 'site-wid':7A,52B,190C 'sole':139C 'state':136C 'state-chang':135C 'templat':210C 'unauthor':83C 'updat':196C 'user':146C 'version':23B,86C 'via':114C 'visitor':61B,208C 'vulner':81C 'whose':117C 'wide':9A,54B,192C 'wordpress':2A,22B,79C 'write':102C,107C,149C","nicknames":[],"mitigations":[],"who_affected":"Sites running the Beyondseo WordPress plugin at version 1.3.6 or earlier, where users with the Contributor role (or higher) exist. The attacker needs a Contributor-level account, so sites with no Contributor users, or with the plugin absent, are not exposed.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-28T07:16:49+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-76780","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-76780","severity":null,"published_at":"2026-10-28T07:16:49+00:00","modified_at":"2026-10-28T07:16:49+00:00","first_seen_at":"2026-10-28T07:31:38+00:00","fetched_at":"2026-10-28T07:31:38+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}