{"id":"CVE-2026-118048","kind":"vulnerability","aliases":["CVE-2026-118048"],"related":[],"title":"WP Data Access WordPress plugin: stored XSS via Simple Form autocomplete label","description":"The WP Data Access plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the Simple Form autocomplete lookup label in versions up to, and including, 5.5.89 This is due to insufficient output escaping on the value returned by WPDA_Autocomplete::autocomplete_lookup() when it is emitted into a single-quoted HTML attribute by WPDA_Simple_Form_Item_Autocomplete::show_item() (the escape-output lint is explicitly suppressed on the echo line). This makes it possible for authenticated attackers, with Subscriber-level access and above, who are permitted to edit a lookup row through a legacy Form, to inject arbitrary web scripts in pages that will execute whenever a user — including a higher-privileged user editing a linked record that uses the autocomplete relationship — accesses the injected page.","summary":"The WP Data Access plugin for WordPress does not escape an autocomplete lookup label in Simple Form output, so stored HTML and script can be injected. When another user, including a higher-privileged one, opens the affected page, the script runs in their browser.","severity":"medium","cvss":6.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","wordpress","wp-data-access"],"not_affected_if":["no-legacy-forms","no-subscriber-access","plugin-not-installed"],"how_to_check":"- Check whether the WP Data Access plugin is installed and its version in the WordPress plugins list; the sources say it is vulnerable up to and including `5.5.89`.\n- Check whether Simple Form autocomplete relationships or legacy Forms are used on the site.","fix":"- WP Data Access: unknown","status":"open","published_at":"2026-11-07T07:17:02+00:00","first_seen_at":"2026-11-07T07:46:06+00:00","triaged_at":"2026-11-07T07:47:09+00:00","updated_at":"2026-11-07T07:47:09+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-07T07:47:09Z","model":"claude-haiku-5-5","output":{"fix":"- WP Data Access: unknown","reach":"network","title":"WP Data Access WordPress plugin: stored XSS via Simple Form autocomplete label","impact":"medium","summary":"The WP Data Access plugin for WordPress does not escape an autocomplete lookup label in Simple Form output, so stored HTML and script can be injected. When another user, including a higher-privileged one, opens the affected page, the script runs in their browser.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","wp-data-access","self-hosted"],"confidence":0.7,"fix_status":"unknown","needs_auth":"yes","worst_case":"Injected script runs in other users' browsers on the site","analyst_note":"","how_to_check":"- Check whether the WP Data Access plugin is installed and its version in the WordPress plugins list; the sources say it is vulnerable up to and including `5.5.89`.\n- Check whether Simple Form autocomplete relationships or legacy Forms are used on the site.","plain_action":"","needs_analyst":false,"not_affected_if":["plugin-not-installed","no-legacy-forms","no-subscriber-access"],"who_is_affected":"Sites running the WP Data Access plugin up to and including version 5.5.89 where subscriber-level users can edit lookup rows through a legacy Form. The flaw needs an authenticated account with that permission, and the payload fires for whoever later views the affected page, so administrators editing linked records are at risk. Sites without this plugin or without legacy Forms using autocomplete relationships can skip it.","user_interaction":"yes","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000733,"input_tokens":4416,"output_tokens":582,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-118048':15A,18A '-2026':14A,17A '5.5.89':101C 'access':3A,27B,31B,76C,160C,203C 'affect':65B 'anoth':55B 'arbitrari':177C 'attack':155C 'attribut':128C 'authent':154C 'autocomplet':11A,39B,92C,115C,116C,134C,201C 'browser':72B 'cross':85C 'cross-sit':84C 'cve':13A,16A 'data':2A,26B,30B,75C 'due':104C 'echo':147C 'edit':167C,194C 'emit':121C 'escap':37B,108C,139C 'escape-output':138C 'execut':184C 'explicit':143C 'form':10A,44B,91C,132C,174C 'higher':60B,191C 'higher-privileg':59B,190C 'host':22B 'html':48B,127C 'includ':57B,100C,188C 'inject':53B,176C,205C 'insuffici':106C 'item':133C,136C 'label':12A,41B,94C 'legaci':173C 'level':159C 'line':148C 'link':196C 'lint':141C 'lookup':40B,93C,117C,169C 'make':150C 'one':62B 'open':63B 'output':45B,107C,140C 'packag':19B 'page':66B,181C,206C 'permit':165C 'plugin':5A,32B,77C 'possibl':152C 'privileg':61B,192C 'quot':126C 'record':197C 'relationship':202C 'return':112C 'row':170C 'run':69B 'script':50B,68B,87C,179C 'self':21B 'self-host':20B 'show':135C 'simpl':9A,43B,90C,131C 'singl':125C 'single-quot':124C 'site':86C 'store':6A,47B,83C 'subscrib':158C 'subscriber-level':157C 'suppress':144C 'use':199C 'user':56B,187C,193C 'valu':111C 'version':96C 'via':8A,88C 'vulner':81C 'web':178C 'whenev':185C 'wordpress':4A,23B,34B,79C 'wp':1A,25B,29B,74C 'wp-data-access':24B 'wpda':114C,130C 'xss':7A","nicknames":[],"mitigations":[],"who_affected":"Sites running the WP Data Access plugin up to and including version 5.5.89 where subscriber-level users can edit lookup rows through a legacy Form. The flaw needs an authenticated account with that permission, and the payload fires for whoever later views the affected page, so administrators editing linked records are at risk. Sites without this plugin or without legacy Forms using autocomplete relationships can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"unknown","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["medium","package","selfhosted","wordpress","wpdataaccess"],"campaign_type":null,"search_a":"'-118048':15A,18A '-2026':14A,17A 'access':3A 'autocomplet':11A 'cve':13A,16A 'data':2A 'form':10A 'label':12A 'plugin':5A 'simpl':9A 'store':6A 'via':8A 'wordpress':4A 'wp':1A 'xss':7A","search_b":"'access':27B,31B 'affect':65B 'anoth':55B 'autocomplet':39B 'browser':72B 'data':26B,30B 'escap':37B 'form':44B 'higher':60B 'higher-privileg':59B 'host':22B 'html':48B 'includ':57B 'inject':53B 'label':41B 'lookup':40B 'one':62B 'open':63B 'output':45B 'packag':19B 'page':66B 'plugin':32B 'privileg':61B 'run':69B 'script':50B,68B 'self':21B 'self-host':20B 'simpl':43B 'store':47B 'user':56B 'wordpress':23B,34B 'wp':25B,29B 'wp-data-access':24B","search_c":"'5.5.89':101C 'access':76C,160C,203C 'arbitrari':177C 'attack':155C 'attribut':128C 'authent':154C 'autocomplet':92C,115C,116C,134C,201C 'cross':85C 'cross-sit':84C 'data':75C 'due':104C 'echo':147C 'edit':167C,194C 'emit':121C 'escap':108C,139C 'escape-output':138C 'execut':184C 'explicit':143C 'form':91C,132C,174C 'higher':191C 'higher-privileg':190C 'html':127C 'includ':100C,188C 'inject':176C,205C 'insuffici':106C 'item':133C,136C 'label':94C 'legaci':173C 'level':159C 'line':148C 'link':196C 'lint':141C 'lookup':93C,117C,169C 'make':150C 'output':107C,140C 'page':181C,206C 'permit':165C 'plugin':77C 'possibl':152C 'privileg':192C 'quot':126C 'record':197C 'relationship':202C 'return':112C 'row':170C 'script':87C,179C 'show':135C 'simpl':90C,131C 'singl':125C 'single-quot':124C 'site':86C 'store':83C 'subscrib':158C 'subscriber-level':157C 'suppress':144C 'use':199C 'user':187C,193C 'valu':111C 'version':96C 'via':88C 'vulner':81C 'web':178C 'whenev':185C 'wordpress':79C 'wp':74C 'wpda':114C,130C","first_public_at":"2026-11-07T07:17:02+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-118048","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-118048","severity":null,"published_at":"2026-11-07T07:17:02+00:00","modified_at":"2026-11-07T07:17:03+00:00","first_seen_at":"2026-11-07T07:46:06+00:00","fetched_at":"2026-11-07T07:46:06+00:00","note":null}],"documents":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}