CVE-2026-15296: Stored XSS in WP Affiliate Plugin via atkp_product Shortcode – Update to Patch
The WP Affiliate Plugin (affiliate-toolkit) for WordPress contains a stored cross-site scripting (XSS) vulnerability in its product shortcode feature. An attacker with contributor-level or higher privileges can embed malicious scripts into pages through poorly sanitized shortcode attributes. When anyone visits an affected page, the injected script executes in their browser, potentially compromising their session, stealing credentials, or performing unauthorized actions. This vulnerability affects all versions up to 3.7.0 and represents a bypass of a previously patched flaw (CVE-2024-10227).
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 6.4 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
- Weaknesses (CWE)
- CWE-79
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-07-10 / 2026-07-14
NVD description (verbatim)
The affiliate-toolkit – WP Affiliate Plugin with Amazon plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the plugin's 'atkp_product' shortcode in all versions up to, and including, 3.7.0 due to insufficient input sanitization and output escaping on user supplied attributes. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This is a bypass to CVE-2024-10227.
3 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-15296 is a Stored XSS vulnerability (CWE-79) in the affiliate-toolkit WordPress plugin's 'atkp_product' shortcode handler. The vulnerability stems from insufficient input sanitization and output escaping of user-supplied shortcode attributes. Because the malicious payload is stored in the page content itself, it persists and executes server-side on every page load for all visitors, making this more dangerous than reflected XSS. The vulnerability requires authenticated access at contributor level or above, meaning it cannot be exploited by anonymous users or unauthenticated attackers. The CVSS 3.1 score of 6.4 (Medium) reflects the network-accessible nature, low privilege requirement for exploitation, and cross-site impact, though without direct confidentiality loss to the WordPress installation itself.
Business impact
For WordPress site operators, this vulnerability creates a persistent security risk across any pages using the affected shortcode. Attackers with contributor access (or those who compromise such accounts) can inject malware, phishing redirects, or credential-harvesting forms that affect all site visitors. E-commerce sites using this plugin for affiliate product displays face particular risk, as compromised pages could redirect customers to phishing sites or inject malicious tracking. Site reputation damage and potential customer data exposure are significant concerns. The vulnerability's status as a bypass of a prior CVE suggests the vendor's initial fix was incomplete, raising questions about remediation quality.
Affected systems
WordPress installations running the affiliate-toolkit (WP Affiliate Plugin) version 3.7.0 and earlier are affected. The vulnerability is triggered specifically by the 'atkp_product' shortcode. Any page or post using this shortcode with untrusted attribute values is a potential injection point. Sites where multiple users have contributor-level access (authors, editors, affiliate managers) have expanded attack surface. WordPress multisite installations may see lateral attack opportunities if a compromised user can edit pages across multiple sites.
Exploitability
Exploitation requires authenticated access with contributor-level privileges or above. This is a meaningful barrier that prevents random internet attackers from exploiting the vulnerability remotely, but insider threats, compromised accounts, and sites with permissive user role assignments create realistic attack scenarios. The shortcode syntax is public and documented, making the attack straightforward for anyone with access. No user interaction is required on the victim's end—the payload executes automatically on page load. The vulnerability is not currently listed on CISA's KEV catalog, suggesting limited evidence of active exploitation in the wild, though this does not eliminate the risk.
Remediation
Update the affiliate-toolkit plugin immediately to a patched version released after 3.7.0. Before patching, audit all pages and posts using the 'atkp_product' shortcode for suspicious or unexpected attribute values. Review contributor and editor role assignments, removing unnecessary elevated privileges. Consider temporarily disabling the shortcode or the plugin entirely if an update is unavailable. Implement a Web Application Firewall (WAF) rule to detect and block script-like patterns in shortcode attributes as a temporary mitigation. Clear the page cache after patching to ensure malicious cached versions are not served.
Patch guidance
Verify the latest version of affiliate-toolkit against the official WordPress plugin repository or the vendor's advisory. Apply the patch immediately in a non-production environment first to test compatibility with your site's other plugins and customizations. Ensure backups are taken before patching. After updating, clear all WordPress caches (page cache, object cache, plugin caches) to prevent stale, potentially malicious versions from being served. Test pages using the 'atkp_product' shortcode in a staging environment to confirm functionality. If the vendor has released multiple patches since 3.7.0, apply the latest stable version.
Detection guidance
Review page and post revisions in WordPress admin for unexpected changes to shortcode attributes, especially script-related content or suspicious URLs. Use security plugins with malware scanning capabilities to audit existing pages for injected content. Check WordPress database tables (wp_posts, wp_postmeta) for atkp_product shortcodes containing suspicious patterns: script tags, event handlers (onclick, onerror), encoded characters, or external URLs. Monitor user activity logs to identify contributor-level accounts making unexpected edits. Implement a WAF rule to log requests with script-like payloads in query parameters or POST data targeting the plugin's shortcode handling endpoints. For multisite installations, audit cross-site page edits by low-privilege accounts.
Why prioritize this
Despite a Medium CVSS score, this vulnerability warrants rapid attention for WordPress sites using the plugin. The bypass nature (circumventing a prior patch) suggests ongoing exploitation likelihood. The stored nature of the XSS means the attack surface grows with every page using the shortcode. Sites with affiliate revenue models are particularly exposed given the plugin's purpose. The requirement for authenticated access means the threat model includes insider risk, which many organizations underestimate. Early patching prevents persistent compromise.
Risk score, explained
The CVSS 3.1 score of 6.4 reflects a Medium severity: network-accessible exploitation, low privilege requirements (contributor level), no additional complexity, and cross-site scope. However, the score does not fully capture the stored persistence nature, which makes each compromised page a permanent attack vector. For WordPress site owners, the actual operational risk may exceed the CVSS score, particularly if the site has weak access controls or high-value content. The bypass status adds urgency beyond the base score.
Frequently asked questions
Can an anonymous user or someone without a WordPress account exploit this?
No. The vulnerability requires authenticated access at contributor level or above. Anonymous users and those without an account cannot trigger it. However, attackers who compromise a contributor account (via password reuse, phishing, or plugin vulnerabilities) can exploit it.
If I disable the 'atkp_product' shortcode, am I protected?
Disabling the shortcode would prevent new injections, but any existing malicious shortcodes already embedded in pages will remain. You must audit and clean existing content before relying on disabling the feature as a mitigation. Upgrading the plugin remains the proper fix.
Does this affect other WordPress plugins or the WordPress core?
No, this vulnerability is specific to the affiliate-toolkit plugin. Other affiliate or shortcode plugins may have similar vulnerabilities, but this CVE does not indicate a broader WordPress issue. Your WordPress version is not directly vulnerable from this CVE.
What does 'bypass to CVE-2024-10227' mean?
It means the vendor previously patched a similar XSS issue in this plugin, but the new patch was incomplete. Attackers have found a way to circumvent that earlier fix using a different attribute or method in the same shortcode. This suggests you should apply the latest patch and consider additional compensating controls until the vendor demonstrates a complete long-term fix.
This analysis is provided for informational purposes based on the CVE and vendor information available as of the publication date. Patch versions, availability, and timelines are subject to vendor release schedules; verify all patch guidance against the official plugin repository and vendor advisory before implementation. CVSS scores reflect the NIST standard calculation and may not represent your specific organizational risk profile. No liability is assumed for the accuracy of third-party information or for outcomes of remediation actions taken in reliance on this guidance. Always test patches in a non-production environment first. Source: NVD (public-domain), retrieved 2026-08-17. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2016-20070MEDIUMPrivilege Escalation & Stored XSS in WordPress Booking Calendar Contact Form 1.0.23
- CVE-2018-25384MEDIUMStored XSS in Wikidforum 2.20 Allows Authenticated Attackers to Inject Malicious Scripts
- CVE-2019-25731MEDIUMStored XSS in Zuz Music 2.1 Contact Form
- CVE-2019-25737MEDIUMStored XSS in Live Chat Unlimited 2.8.3 – Admin Session Compromise
- CVE-2019-25739MEDIUMGigToDo 1.3 Stored XSS Vulnerability in Proposal Descriptions
- CVE-2019-25742MEDIUMStored XSS in Zoner Real Estate WordPress Theme 4.1.1 – Admin Account Compromise Risk
- CVE-2019-25743MEDIUMWordPress Soliloquy Lite 2.5.6 Stored XSS Vulnerability
- CVE-2019-25744MEDIUMWordPress Popup Builder 3.49 Stored XSS Vulnerability – Exploit Prevention & Patch Guide