Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as Subscriber-level user
-
DeliveryRead plaintext master API key from exposed settings page
-
ExploitForge SHA-256 bearer token for plugin REST API
-
ExecutionCall auto-login endpoint to mint 30-second admin URL
-
ImpactSet administrator cookie and escalate privileges
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires ALL of the following: (1) the attacker holds an authenticated account at Subscriber level or above; (2) the site is actively connected to InstaWP (a valid master API key exists in instawp_api_options); and (3) an administrator has added the attacker's role to the plugin's Sync Tab Access list (instawp_sync_tab_roles). A key limiting factor is that the settings tab is only suppressed when 'administrator' is entirely absent from the list - so a mixed configuration that retains administrator alongside a lower role still serves the full settings page and API key to the lower-privileged user, which is the exploitable state. This is a non-default, administrator-created condition, which is why realistic exposure is narrower than the CVSS base score alone suggests. |
| Impact | This is a genuine full-takeover privilege escalation (CWE-269) in InstaWP Connect for WordPress reported by Wordfence, but its real-world risk is moderate rather than critical because exploitation depends on a specific, non-default configuration. The CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H) correctly captures the tension: impact is maximal (C:H/I:H/A:H - a Subscriber becomes Administrator), the attacker needs only low privileges (PR:L) and no user interaction, but AC:H reflects the two preconditions that must both hold - the site must be actively connected to InstaWP, and an administrator must have added the attacker's role to the Sync Tab Access list (instawp_sync_tab_roles) in a mixed configuration that still exposes the API key. No EPSS score, KEV listing, or public exploit was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation; the absence of these signals is consistent with a recently disclosed, config-dependent flaw rather than one under mass exploitation. Net: prioritize for sites running this plugin that match the vulnerable configuration, but AC:H and the PR:L authenticated prerequisite meaningfully narrow the exposed population versus a drive-by unauthenticated bug. |
| Exploit ScenarioDerived | On a WordPress site actively connected to InstaWP where an administrator has added a low-privileged role to the Sync Tab Access list alongside administrator, an authenticated Subscriber opens the plugin settings page and reads the plaintext master API key rendered directly in a plain-text input. The attacker derives the SHA-256 secret, presents it as a bearer token to the plugin's REST API, and calls 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 to admin. No public exploit code is identified at time of analysis, but the attack path is fully described in the advisory and trivial to reproduce manually. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Privilege escalation in the InstaWP Connect - 1-click WP Staging & Migration WordPress plugin (all versions up to and including 0.1.4.1) lets any authenticated user at Subscriber level or above read the site's plaintext InstaWP master API key from a plugin settings page and redeem it for a full administrator session. The key is disclosed because the admin page is registered with a role name returned by InstaWP_Setting::get_allowed_role() in place of a real capability, and because generate_section_field() prints the master API key directly into a plain-text HTML input without a manage_options check; the attacker then derives the bearer secret from that key, satisfies the plugin's REST validate_api_request(), and calls POST /wp-json/instawp-connect/v2/auto-login to mint a 30-second single-use login URL that sets an administrator authentication cookie. Exploitation is not default-configured: it additionally requires the site to be actively connected to InstaWP (a valid master API key in instawp_api_options) and an administrator to have added the attacker's role to the plugin's Sync Tab Access list (instawp_sync_tab_roles) while still retaining administrator in that list, so realistic exposure is narrower than the 7.5 base score implies. There is no public exploit code identified at time of analysis and the issue is not confirmed actively exploited (no CISA KEV listing); authentication requirements are authenticated (CVSS PR:L) with high attack complexity (AC:H).
RemediationAI
Upstream fix available (changeset/commit); a released patched version is not independently confirmed in the provided data - the vendor trunk changeset https://plugins.trac.wordpress.org/changeset/3743786/instawp-connect/trunk/includes/class-instawp-setting.php modifies the settings class, so administrators should upgrade as soon as a tagged release beyond 0.1.4.1 is published and verify the changelog entry before deploying. Where immediate upgrade is impossible, the most effective compensating control is to correct the instawp_sync_tab_roles option so it never combines 'administrator' with a lower-privileged role: either keep the Sync Tab Access list restricted to administrator only (the settings page still renders for admins, so plugin configuration keeps working) or remove administrator entirely and list only the intended lower roles, which triggers the existing tab-suppression logic - both variants reduce or remove the shared-access state, at the cost of taking away Sync Tab functionality from editors/authors/subscribers who were previously granted it. A second, stronger containment is to disconnect the site from InstaWP while unpatched, which removes the master API key from instawp_api_options and breaks the disclosure-to-token chain, with the clear trade-off that staging, migration and auto-login features become unavailable. After patching or mitigation, rotate the InstaWP master API key (reconnect the site) so any key already read by a low-privileged account is invalidated, and treat a rotation as mandatory if the attacker role was ever present in the Sync Tab Access list. Additionally audit subscriber-and-above accounts for unexpected administrators, review the database option instawp_api_options for tampering, and scan web/server logs for POST requests to /wp-json/instawp-connect/v2/auto-login followed by administrative session creation, since that endpoint is the exploitable post-disclosure step. The principal advisory to track is the Wordfence threat-intel entry at https://www.wordfence.com/threat-intel/vulnerabilities/id/925b009e-3aeb-496d-8218-6ea5dc9d9989?source=cve.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
This is a CWE-269 improper privilege management flaw rooted in how the plugin abuses the WordPress capability system. WordPress evaluates page capability checks against the user's allcaps array, which includes role slugs as first-class entries; by passing a role name obtained from InstaWP_Setting::get_allowed_role() (populated from the instawp_sync_tab_roles option) into add_management_page() (admin/class-instawp-admin.php#L153, includes/class-instawp-setting.php#L91), the plugin effectively grants the settings screen to any user holding that role - even a Subscriber if a lower role is listed - instead of gating it behind manage_options. The second defect is a secret-exposure bug in generate_section_field() (includes/class-instawp-setting.php#L186): the master API key stored in the instawp_api_options option is echoed verbatim as the value attribute of an ordinary text input, with no masking or additional capability check. The tab-suppression logic is incomplete: the settings tab is hidden only when 'administrator' is entirely absent from instawp_sync_tab_roles, so a mixed list containing administrator plus a lower role still serves the full settings page, including the API key, to the lower-privileged user. That key's SHA-256-derived value doubles as a bearer token accepted by the plugin's REST layer validate_api_request() (includes/apis/class-instawp-rest-api.php#L663), and the auto-login handler (includes/class-instawp-hooks.php#L194, includes/functions.php#L1041) uses it to produce a short-lived, single-use administrator login URL - an architecture that treats a single symmetric secret as both configuration material and an authentication credential. The affected component is identified by the vendor/product CPE cpe:2.3:a:instawp:instawp_connect_-_1-click_wp_staging_&_migration with a wildcard version field.
Know when Wordpress Plugin gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Remote REST exploitation (AV:N) by an authenticated Subscriber (PR:L); AC:H because it depends on the site being InstaWP-connected and an admin misconfiguring the Sync Tab role list; full admin takeover yields C:H/I:H/A:H.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
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 add_management_page() using a role name returned by InstaWP_Setting::get_allowed_role() as the required capability - which WordPress resolves as a real capability match for any user holding that role - combined with generate_section_field() rendering the master API key from the instawp_api_options option directly as the value attribute of a plain-text HTML input with no additional manage_options 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 validate_api_request(), 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 (instawp_sync_tab_roles); 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.
Executive ViewAI
InstaWP Connect, a WordPress staging and migration plugin present in the organization's WordPress estate, permits a low-privilege site account to read the site's master InstaWP API key and exchange it for a full administrator session, giving an attacker complete control of any affected site that is connected to InstaWP. No vendor patch currently exists, so every installation at version 0.1.4.1 or earlier remains exposed until the plugin is removed or the site is disconnected from InstaWP; a successful takeover would expose site content, customer data, and any credentials or integrations reachable through the site.
No vendor-released patch identified at time of analysis. Interim mitigations: deactivate and remove InstaWP Connect (versions up to and including 0.1.4.1) where it is not business-critical; for sites that must keep it, disconnect the site from InstaWP to invalidate the stored master API key and rotate the InstaWP master API key immediately; audit and reduce Subscriber-and-above accounts to least privilege; block or alert on requests to the /wp-json/instawp-connect/v2/auto-login endpoint via WAF or web server rules; monitor for unexpected administrator account creation, authentication cookies, and logins not preceded by a normal login; apply a vendor fixed release above 0.1.4.1 as soon as one is available.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
More in Wordpress Plugin
View allThe Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in
Remote code execution in the WP Query Console WordPress plugin (versions up to and including 1.0) by Ajit Bohra allows u
EUVD-2026-102643
GHSA-frvw-wvjh-gg5q
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB