{"id":"CVE-2026-110017","kind":"vulnerability","aliases":["CVE-2026-110017"],"related":[],"title":"Quick PayPal Payments WordPress plugin: stored XSS via form parameter","description":"The Quick PayPal Payments: Payment Button & Form plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'form' parameter in all versions up to, and including, 6.0.4 due to insufficient input sanitization and output escaping. 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. Because wp_kses_post strips only HTML tags, a quote-breaking payload containing no angle brackets survives post save intact, and the injected script fires for every viewer of the post — including higher-privileged Editors and Administrators who routinely preview a Contributor's pending content.","summary":"The Quick PayPal Payments WordPress plugin up to and including 6.0.4 does not sanitize the 'form' parameter, so a contributor-level user can store a script in a post. The script runs in the browser of anyone who views that page, including Editors and Administrators who preview it.","severity":"medium","cvss":6.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","wordpress","wordpress-plugins"],"not_affected_if":["no-contributor-accounts","plugin-not-installed","plugin-updated"],"how_to_check":"- Check whether the plugin is installed and its version in the WordPress admin Plugins screen or with `wp plugin get quick-paypal-payments --field=version` (the slug is unknown from the sources; confirm it)\n- Look for contributor-submitted posts containing quote-breaking script payloads in the 'form' parameter of the plugin's shortcode or block","fix":"- Update the Quick PayPal Payments plugin to a version later than `6.0.4` (the patched version is unknown from the sources)\n- Until patched, restrict Contributor accounts or review pending content for injected script before previewing it","status":"open","published_at":"2026-10-16T06:17:08+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","triaged_at":"2026-10-25T03:59:54+00:00","updated_at":"2026-10-25T03:59:54+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-25T03:59:54Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Quick PayPal Payments plugin to a version later than `6.0.4` (the patched version is unknown from the sources)\n- Until patched, restrict Contributor accounts or review pending content for injected script before previewing it","reach":"network","title":"Quick PayPal Payments WordPress plugin: stored XSS via form parameter","impact":"medium","summary":"The Quick PayPal Payments WordPress plugin up to and including 6.0.4 does not sanitize the 'form' parameter, so a contributor-level user can store a script in a post. The script runs in the browser of anyone who views that page, including Editors and Administrators who preview it.","category":"package","nicknames":[],"who_cares":["wordpress","wordpress-plugins","self-hosted"],"confidence":0.8,"needs_auth":"yes","worst_case":"script runs in editors' and admins' browsers, enabling account takeover","analyst_note":"Confirm the patched version and plugin slug from the NVD entry or the WordPress plugin changelog, since the sources do not give them.","how_to_check":"- Check whether the plugin is installed and its version in the WordPress admin Plugins screen or with `wp plugin get quick-paypal-payments --field=version` (the slug is unknown from the sources; confirm it)\n- Look for contributor-submitted posts containing quote-breaking script payloads in the 'form' parameter of the plugin's shortcode or block","needs_analyst":true,"not_affected_if":["plugin-not-installed","no-contributor-accounts","plugin-updated"],"who_is_affected":"Sites running the Quick PayPal Payments plugin at version 6.0.4 or earlier that allow Contributor-level or higher users to create or edit content. The exposure is to every visitor and staff member who views a poisoned page, so sites with multiple editors are most at risk. Sites without the plugin, or where only trusted administrators write content, can skip it.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000695,"input_tokens":3466,"output_tokens":697,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-110017':13A,16A '-2026':12A,15A '6.0.4':35B,102C 'access':122C,138C 'administr':70B,180C 'angl':157C 'anyon':62B 'arbitrari':127C 'attack':117C 'authent':116C 'bracket':158C 'break':153C 'browser':60B 'button':78C 'contain':155C 'content':188C 'contributor':45B,120C,185C 'contributor-level':44B,119C 'cross':88C 'cross-sit':87C 'cve':11A,14A 'due':103C 'editor':68B,178C 'escap':110C 'everi':169C 'execut':134C 'fire':167C 'form':9A,40B,79C,93C 'higher':176C 'higher-privileg':175C 'host':20B 'html':148C 'includ':34B,67B,101C,174C 'inject':126C,140C,165C 'input':106C 'insuffici':105C 'intact':162C 'kses':144C 'level':46B,121C 'make':112C 'output':109C 'packag':17B 'page':66B,131C,141C 'paramet':10A,41B,94C 'payload':154C 'payment':3A,28B,76C,77C 'paypal':2A,27B,75C 'pend':187C 'plugin':5A,24B,30B,80C 'possibl':114C 'post':54B,145C,160C,173C 'preview':72B,183C 'privileg':177C 'quick':1A,26B,74C 'quot':152C 'quote-break':151C 'routin':182C 'run':57B 'sanit':38B,107C 'save':161C 'script':51B,56B,90C,129C,166C 'self':19B 'self-host':18B 'site':89C 'store':6A,49B,86C 'strip':146C 'surviv':159C 'tag':149C 'user':47B,137C 'version':97C 'via':8A,91C 'view':64B 'viewer':170C 'vulner':84C 'web':128C 'whenev':135C 'wordpress':4A,21B,23B,29B,82C 'wordpress-plugin':22B 'wp':143C 'xss':7A","nicknames":[],"mitigations":[],"who_affected":"Sites running the Quick PayPal Payments plugin at version 6.0.4 or earlier that allow Contributor-level or higher users to create or edit content. The exposure is to every visitor and staff member who views a poisoned page, so sites with multiple editors are most at risk. Sites without the plugin, or where only trusted administrators write content, can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T06:17:08+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/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-110017","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-110017","severity":null,"published_at":"2026-10-16T06:17:08+00:00","modified_at":"2026-10-16T15:17:09+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","fetched_at":"2026-10-23T22:28:55+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"}