CVE-2026-109400: InstaWP Connect <= 0.1.4.1 - Authenticated (Subscriber+) Privilege Escalation via Role-as-Capability Admin Page and API Key Disclosure via 'instawp_sync_tab_roles' Role-as-Capability Setting
The InstaWP Connect – 1-click WP Staging & Migration plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 0.1.4.1 This is due to the plugin registering its admin page via addmanagementpage() using a role name returned by InstaWPSetting::getallowedrole() as the required capability — which WordPress resolves as a real capability match for any user holding that role — combined with generatesectionfield() rendering the master API key from the instawpapioptions option directly as the value attribute of a plain-text HTML input with no additional manageoptions or equivalent capability check. This makes it possible for authenticated attackers with Subscriber-level access and above to read the plaintext master API key, use its SHA-256-derived secret as a bearer token accepted by the plugin's REST API validateapirequest(), and call POST /wp-json/instawp-connect/v2/auto-login to mint a 30-second single-use login URL that sets an administrator authentication cookie — fully escalating their privileges. Exploitation requires the site to be actively connected to InstaWP and an administrator to have added the attacker's role to the plugin's Sync Tab Access list (instawpsynctabroles); notably, the settings tab suppression logic only hides the tab when administrator is absent from the list entirely, meaning a mixed configuration retaining administrator alongside a lower role still serves the full settings page — including the API key — to the lower-privileged user.
Affected Software
Event History
Frequently Asked Questions
Which users can exploit this issue?
An authenticated user with Subscriber-level access or higher can exploit it if their role has been added by an administrator to the plugin's allowed-role setting. The site must also be actively connected to InstaWP.
What does successful exploitation allow?
The attacker can read the plaintext master API key from the plugin settings page, derive the bearer-token secret accepted by the plugin REST API, and request a single-use 30-second auto-login URL. Using that URL results in an administrator authentication cookie, giving the attacker administrator-level access.