---
id: "CVE-2026-111314"
kind: "vulnerability"
aliases: ["CVE-2026-111314"]
title: "WordPress affiliate-toolkit plugin: stored XSS via product URL parameter"
severity: "high"
cvss: 7.2
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["affiliate-toolkit", "package", "self-hosted", "wordpress", "wordpress-plugins"]
not_affected_if: ["ajax-options-disabled-and-no-contributor-users", "plugin-not-installed", "version-above-3.9.2"]
published_at: "2026-10-28T03:17:09+00:00"
first_seen_at: "2026-10-28T03:31:02+00:00"
updated_at: "2026-10-28T03:32:31+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-111314", "first_seen_at": "2026-10-28T03:31:02+00:00"}]
---

# WordPress affiliate-toolkit plugin: stored XSS via product URL parameter

The affiliate-toolkit WordPress plugin up to and including 3.9.2 fails to sanitize the 'atkp_product_producturl' parameter, so injected scripts are stored and rendered on pages. When a visitor opens an affected page, the script runs in their browser, which can be used to act as them or steal session data.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed version of the affiliate-toolkit plugin in the WordPress admin Plugins screen; versions `3.9.2` and earlier are affected.
- Check whether the AJAX loading or AJAX handler option is enabled in the plugin settings (atkp_options get_ajax_loading_enabled / get_ajax_handler_enabled).

## Fix

- Update the affiliate-toolkit plugin to a version later than `3.9.2` (the sources do not name the fixed version).
- Until updated, disable the plugin's AJAX loading and AJAX handler options and restrict contributor-level accounts.

## Timeline

- 2026-10-28T03:31:02+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-111314

## From the sources

The affiliate-toolkit – Multi-Network Affiliate & Amazon Product Display plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'atkp_product_producturl' parameter in all versions up to, and including, 3.9.2 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. Exploitation by unauthenticated attackers requires that the plugin's AJAX loading / AJAX handler option is enabled (atkp_options::get_ajax_loading_enabled() || get_ajax_handler_enabled()) and the attacker knows a product id to render. On a default installation, where that is not configured, the vulnerability requires attackers with contributor-level access and above.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
