# CVE-2026-109386: Hustle <= 7.8.14.3 - Missing Authorization to Authenticated (Custom+) ESP Credential Overwrite and Irreversible OAuth Token Deletion via 'hustle_provider_migrate_hubspot' (and sibling migrate_*) AJAX Action

Status: published. Published: 2026-10-31. Updated: 2026-11-02.

The Hustle – Email Marketing, Lead Generation, Optins, Popups plugin for WordPress is vulnerable to authorization bypass in all versions up to, and including, 7.8.14.3. This is due to the plugin not properly verifying that a user is authorized to perform an action. This makes it possible for authenticated attackers, with custom-level access and above, to overwrite the site's active ESP integration credentials (AWeber, Constant Contact, Infusionsoft, ConvertKit, or HubSpot API keys) with attacker-controlled values — diverting all subsequent Hustle form lead submissions to the attacker's ESP tenant — and, for HubSpot, irreversibly delete the operator's OAuth token, OAuth referer, and OAuth current-page option rows. This requires the attacker to hold the plugin-granted hustle_create capability (e.g., an Editor delegated hustle_create but not hustle_edit_integrations via Hustle's Permissions tab), which allows them to load a Hustle module wizard page and obtain the hustle_provider_action nonce needed to reach the vulnerable handlers.

## Remediation

No remediation reported in collected sources

## Affected products and versions

- wpmudev / Hustle – Email Marketing, Lead Generation, Optins, Popups: ≥ 0; ≤ 7.8.14.3 (affected, semver). Source: CNA: Wordfence

## Severity and prioritization

- CVSS 3.1: 4.3 (medium); CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N; source: CNA: Wordfence

- CVSS 3.1: 4.3 (medium); CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N; source: NVD: security@wordfence.com

- CISA KEV: No listing in collected sources

- EPSS: 0.36% as of 2026-11-02; percentile 29.43%

- SSVC: exploitation none; automatable no; technical impact partial; source ADP: CISA-ADP

- Weaknesses: CWE-862

## Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

## References

- https://www.wordfence.com/threat-intel/vulnerabilities/id/f26c0279-0b51-40a8-8d11-6f2cbb21e59a?source=cve (CNA: Wordfence)

- https://plugins.trac.wordpress.org/browser/wordpress-popup/tags/7.8.14.3/inc/provider/class-hustle-provider-admin-ajax.php#L667 (CNA: Wordfence)

- https://plugins.trac.wordpress.org/browser/wordpress-popup/tags/7.8.14.3/inc/provider/class-hustle-provider-admin-ajax.php#L652 (CNA: Wordfence)

- https://plugins.trac.wordpress.org/browser/wordpress-popup/tags/7.8.14.3/inc/provider/class-hustle-provider-admin-ajax.php#L509 (CNA: Wordfence)

- https://plugins.trac.wordpress.org/browser/wordpress-popup/tags/7.8.14.3/inc/provider/class-hustle-provider-admin-ajax.php#L533 (CNA: Wordfence)

- https://plugins.trac.wordpress.org/browser/wordpress-popup/tags/7.8.14.3/inc/provider/class-hustle-provider-admin-ajax.php#L576 (CNA: Wordfence)

- https://plugins.trac.wordpress.org/browser/wordpress-popup/tags/7.8.14.3/inc/provider/class-hustle-provider-admin-ajax.php#L610 (CNA: Wordfence)

- https://plugins.trac.wordpress.org/browser/wordpress-popup/tags/7.8.14.3/inc/providers/hubspot/hustle-hubspot-api.php#L310 (CNA: Wordfence)

- https://plugins.trac.wordpress.org/browser/wordpress-popup/tags/7.8.14.4/inc/provider/class-hustle-provider-admin-ajax.php (CNA: Wordfence)

- https://plugins.trac.wordpress.org/browser/wordpress-popup/tags/7.8.14.3/inc/provider/class-hustle-provider-admin-ajax.php#L509 (security@wordfence.com)

- https://plugins.trac.wordpress.org/browser/wordpress-popup/tags/7.8.14.3/inc/provider/class-hustle-provider-admin-ajax.php#L533 (security@wordfence.com)

- https://plugins.trac.wordpress.org/browser/wordpress-popup/tags/7.8.14.3/inc/provider/class-hustle-provider-admin-ajax.php#L576 (security@wordfence.com)

- https://plugins.trac.wordpress.org/browser/wordpress-popup/tags/7.8.14.3/inc/provider/class-hustle-provider-admin-ajax.php#L610 (security@wordfence.com)

- https://plugins.trac.wordpress.org/browser/wordpress-popup/tags/7.8.14.3/inc/provider/class-hustle-provider-admin-ajax.php#L652 (security@wordfence.com)

- https://plugins.trac.wordpress.org/browser/wordpress-popup/tags/7.8.14.3/inc/provider/class-hustle-provider-admin-ajax.php#L667 (security@wordfence.com)

- https://plugins.trac.wordpress.org/browser/wordpress-popup/tags/7.8.14.3/inc/providers/hubspot/hustle-hubspot-api.php#L310 (security@wordfence.com)

- https://plugins.trac.wordpress.org/browser/wordpress-popup/tags/7.8.14.4/inc/provider/class-hustle-provider-admin-ajax.php (security@wordfence.com)

- https://www.wordfence.com/threat-intel/vulnerabilities/id/f26c0279-0b51-40a8-8d11-6f2cbb21e59a?source=cve (security@wordfence.com)

## Provenance

- CNA: Wordfence: https://www.cve.org/CVERecord?id=CVE-2026-109386; retrieved 2026-11-02; source updated 2026-11-02

- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-109386; retrieved 2026-11-02; source updated 2026-11-02

- FIRST EPSS: https://api.first.org/data/v1/epss?cve=CVE-2026-109386; retrieved 2026-11-02; source updated Not reported

Revision: 0d21b1204e6f94f3117622cccf68f3357b0628adb5c9293cf2a22ca5ea803345

Canonical: https://y2.dev/cve/CVE-2026-109386

## Agent and API access

Public CVE pages, Markdown, and JSON are free to read without an account or API key.

- Public catalog: https://y2.dev/cve/index.json. Follow nextCursor with the same search, filters, sort, and limit (1–100). A null cursor marks the end.

- WebMCP: search_cve_disclosures, get_cve_disclosure, get_cve_page_markdown, get_y2_cve_access. Available in compatible browsers.

- Cyber API: https://api.y2.dev/api/v2/cyber/cves and https://api.y2.dev/api/v2/cyber/cves/{cveId}.

- Y2 Pro or Elite: create a workspace API key with the intel:cyber scope and send Authorization: Bearer <Y2_API_KEY>. Setup: https://y2.dev/docs/api/create-key.

- x402: Pay per request without an account or API key. Omit Authorization, read the HTTP 402 PAYMENT-REQUIRED challenge, validate its current requirements, and retry with PAYMENT-SIGNATURE through an authorized payment client. These browser tools never make payments. Guide: https://y2.dev/docs/api/x402.

- OpenAPI: https://y2.dev/api/openapi.yaml. Agent access metadata: https://y2.dev/cve/agent.json.

Collected public records only. Check source status for coverage and freshness.