{"id":"CVE-2026-107743","kind":"vulnerability","aliases":["CVE-2026-107743"],"related":[],"title":"WordPress Mapster WP Maps plugin: unauthenticated stored cross-site scripting","description":"The Mapster WP Maps plugin for WordPress is vulnerable to Stored Cross-Site Scripting in versions up to, and including, 2.0.5. This is due to the /wp-json/mapster-wp-maps/save-mapmaker REST route being registered with a permission_callback that unconditionally returns true (no capability check, no nonce), together with the mapster_write_config_to_acf() helper only sanitizing string config values with sanitize_text_field() — which strips HTML tags but leaves quote characters intact — and the mapster_wp_map shortcode renderer in mapster_wordpress_maps_shortcode_display() concatenating the stored loading_background_color value into a single-quoted inline style attribute without esc_attr(). This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.","summary":"The Mapster WP Maps WordPress plugin up to and including 2.0.5 exposes a REST route with no permission check, so anyone can save map settings. A stored value is written into a page's inline style without escaping, letting an attacker inject JavaScript that runs for every visitor of that page.","severity":"high","cvss":7.2,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["mapster-wp-maps","package","self-hosted","wordpress"],"not_affected_if":["plugin-newer-than-2.0.5","plugin-not-installed"],"how_to_check":"- Check whether the `mapster-wp-maps` plugin is installed and its version in the WordPress admin under Plugins.\n- Look for the `/wp-json/mapster-wp-maps/save-mapmaker` REST route on the site.\n- Review pages using the `mapster_wp_map` shortcode for unexpected script content in `loading_background_color` settings.","fix":"- Plugin versions up to and including `2.0.5` are affected; the sources do not state a fixed version.","status":"open","published_at":"2026-10-29T10:17:02+00:00","first_seen_at":"2026-10-29T10:24:25+00:00","triaged_at":"2026-10-29T10:25:18+00:00","updated_at":"2026-10-29T10:25:18+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-29T10:25:18Z","model":"claude-haiku-5-5","output":{"fix":"- Plugin versions up to and including `2.0.5` are affected; the sources do not state a fixed version.","reach":"internet","title":"WordPress Mapster WP Maps plugin: unauthenticated stored cross-site scripting","impact":"medium","summary":"The Mapster WP Maps WordPress plugin up to and including 2.0.5 exposes a REST route with no permission check, so anyone can save map settings. A stored value is written into a page's inline style without escaping, letting an attacker inject JavaScript that runs for every visitor of that page.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","mapster-wp-maps","self-hosted"],"confidence":0.7,"fix_status":"unknown","needs_auth":"no","worst_case":"Attacker injects scripts into pages that run in visitors' browsers","analyst_note":"Confirm the fixed plugin version and whether the vendor has released a patch from the NVD entry or the plugin's changelog.","how_to_check":"- Check whether the `mapster-wp-maps` plugin is installed and its version in the WordPress admin under Plugins.\n- Look for the `/wp-json/mapster-wp-maps/save-mapmaker` REST route on the site.\n- Review pages using the `mapster_wp_map` shortcode for unexpected script content in `loading_background_color` settings.","plain_action":"","needs_analyst":true,"not_affected_if":["plugin-not-installed","plugin-newer-than-2.0.5"],"who_is_affected":"Any WordPress site running the Mapster WP Maps plugin at version 2.0.5 or earlier, where the map shortcode is used on pages. The flaw is reachable without logging in because the save route has no capability check or nonce. Sites that do not run this plugin can skip it.","user_interaction":"yes","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.000763,"input_tokens":4325,"output_tokens":661,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-107743':14A,17A '-2026':13A,16A '/wp-json/mapster-wp-maps/save-mapmaker':105C '2.0.5':37B,99C 'access':201C 'acf':130C 'anyon':47B 'arbitrari':190C 'attack':67B,187C 'attr':180C 'attribut':177C 'background':167C 'callback':113C 'capabl':119C 'charact':148C 'check':45B,120C 'color':168C 'concaten':163C 'config':128C,135C 'cross':9A,90C 'cross-sit':8A,89C 'cve':12A,15A 'display':162C 'due':102C 'esc':179C 'escap':64B 'everi':73B 'execut':197C 'expos':38B 'field':140C 'helper':131C 'host':25B 'html':143C 'includ':36B,98C 'inject':68B,189C,203C 'inlin':61B,175C 'intact':149C 'javascript':69B 'leav':146C 'let':65B 'load':166C 'make':182C 'map':4A,21B,30B,50B,81C,154C,160C 'mapster':2A,19B,28B,79C,126C,152C,158C 'mapster-wp-map':18B 'nonc':122C 'packag':22B 'page':59B,77B,194C,204C 'permiss':44B,112C 'plugin':5A,32B,82C 'possibl':184C 'quot':147C,174C 'regist':109C 'render':156C 'rest':40B,106C 'return':116C 'rout':41B,107C 'run':71B 'sanit':133C,138C 'save':49B 'script':11A,92C,192C 'self':24B 'self-host':23B 'set':51B 'shortcod':155C,161C 'singl':173C 'single-quot':172C 'site':10A,91C 'store':7A,53B,88C,165C 'string':134C 'strip':142C 'style':62B,176C 'tag':144C 'text':139C 'togeth':123C 'true':117C 'unauthent':6A,186C 'uncondit':115C 'user':200C 'valu':54B,136C,169C 'version':94C 'visitor':74B 'vulner':86C 'web':191C 'whenev':198C 'without':63B,178C 'wordpress':1A,26B,31B,84C,159C 'wp':3A,20B,29B,80C,153C 'write':127C 'written':56B","nicknames":[],"mitigations":[],"who_affected":"Any WordPress site running the Mapster WP Maps plugin at version 2.0.5 or earlier, where the map shortcode is used on pages. The flaw is reachable without logging in because the save route has no capability check or nonce. Sites that do not run this plugin can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"unknown","audience":"businesses","plain_action":null,"first_public_at":"2026-10-29T10:17:02+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-107743","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-107743","severity":null,"published_at":"2026-10-29T10:17:02+00:00","modified_at":"2026-10-29T10:17:02+00:00","first_seen_at":"2026-10-29T10:24:25+00:00","fetched_at":"2026-10-29T10:24:25+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"}