{"id":"CVE-2026-111314","kind":"vulnerability","aliases":["CVE-2026-111314"],"related":[],"title":"WordPress affiliate-toolkit plugin: stored XSS via product URL parameter","description":"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.","summary":"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.","severity":"high","cvss":7.2,"epss":null,"exploited":false,"exploited_at":null,"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"],"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.\n- 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).\n- Until updated, disable the plugin's AJAX loading and AJAX handler options and restrict contributor-level accounts.","status":"open","published_at":"2026-10-28T03:17:09+00:00","first_seen_at":"2026-10-28T03:31:02+00:00","triaged_at":"2026-10-28T03:32:31+00:00","updated_at":"2026-10-28T03:32:31+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-28T03:32:31Z","model":"claude-haiku-5-5","output":{"fix":"- Update the affiliate-toolkit plugin to a version later than `3.9.2` (the sources do not name the fixed version).\n- Until updated, disable the plugin's AJAX loading and AJAX handler options and restrict contributor-level accounts.","reach":"internet","title":"WordPress affiliate-toolkit plugin: stored XSS via product URL parameter","impact":"medium","summary":"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.","category":"package","nicknames":[],"who_cares":["wordpress","wordpress-plugins","affiliate-toolkit","self-hosted"],"confidence":0.7,"needs_auth":"unknown","worst_case":"Attacker script runs in visitors' browsers on affected pages","analyst_note":"Confirm the fixed plugin version and the exact fix in the plugin changelog or NVD entry at https://nvd.nist.gov/vuln/detail/CVE-2026-111314.","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.\n- 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).","needs_analyst":true,"not_affected_if":["plugin-not-installed","version-above-3.9.2","ajax-options-disabled-and-no-contributor-users"],"who_is_affected":"Sites running the affiliate-toolkit plugin at version 3.9.2 or earlier are exposed. Unauthenticated exposure needs the AJAX loading or AJAX handler option enabled; on default installs only contributor-level accounts and above can exploit it.","user_interaction":"yes","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000717,"input_tokens":3507,"output_tokens":733,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-111314':14A,17A '-2026':13A,16A '3.9.2':39B,117C 'access':146C,202C 'act':75B 'affect':62B 'affili':3A,19B,31B,84C,89C 'affiliate-toolkit':2A,18B,30B,83C 'ajax':159C,161C,169C,173C 'amazon':90C 'arbitrari':135C 'atkp':44B,106C,166C 'attack':132C,153C,178C,197C 'browser':69B 'configur':193C 'contributor':200C 'contributor-level':199C 'cross':101C 'cross-sit':100C 'cve':12A,15A 'data':81B 'default':187C 'display':92C 'due':118C 'enabl':165C,171C,175C 'escap':125C 'execut':142C 'exploit':150C 'fail':40B 'get':168C,172C 'handler':162C,174C 'host':24B 'id':182C 'includ':38B,116C 'inject':49B,134C,148C 'input':121C 'instal':188C 'insuffici':120C 'know':179C 'level':201C 'load':160C,170C 'make':127C 'multi':87C 'multi-network':86C 'network':88C 'open':60B 'option':163C,167C 'output':124C 'packag':21B 'page':56B,63B,139C,149C 'paramet':11A,47B,109C 'plugin':5A,28B,34B,93C,157C 'possibl':129C 'product':9A,45B,91C,107C,181C 'producturl':46B,108C 'render':54B,184C 'requir':154C,196C 'run':66B 'sanit':42B,122C 'script':50B,65B,103C,137C 'self':23B 'self-host':22B 'session':80B 'site':102C 'steal':79B 'store':6A,52B,99C 'toolkit':4A,20B,32B,85C 'unauthent':131C,152C 'url':10A 'use':73B 'user':145C 'version':112C 'via':8A,104C 'visitor':59B 'vulner':97C,195C 'web':136C 'whenev':143C 'wordpress':1A,25B,27B,33B,95C 'wordpress-plugin':26B 'xss':7A","nicknames":[],"mitigations":[],"who_affected":"Sites running the affiliate-toolkit plugin at version 3.9.2 or earlier are exposed. Unauthenticated exposure needs the AJAX loading or AJAX handler option enabled; on default installs only contributor-level accounts and above can exploit it.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-28T03:17:09+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-111314","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-111314","severity":null,"published_at":"2026-10-28T03:17:09+00:00","modified_at":"2026-10-28T03:17:09+00:00","first_seen_at":"2026-10-28T03:31:02+00:00","fetched_at":"2026-10-28T03:31:02+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}