{"id":"CVE-2026-97470","kind":"vulnerability","aliases":["CVE-2026-97470"],"related":[],"title":"Tourfic WordPress plugin: stored XSS via comments lets customers inject scripts","description":"The Tourfic – AI Powered Travel Booking, Hotel Booking & Car Rental plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Comment Content via unfiltered_html Grant to Customer Role in all versions up to, and including, 3.0.1 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with subscriber-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This requires WooCommerce to be active, but since the customer role is freely self-registerable without admin approval, exploitation is effectively possible by any unauthenticated visitor who registers a WooCommerce account. While the plugin's own listing-page templates sanitize output with wp_kses_post(), the stored payload is returned unsanitized via the unauthenticated GET /wp-json/wp/v2/comments REST endpoint (content.rendered) and post/comment RSS feeds, exposing any headless client, feed reader, or third-party widget that renders comment content.","summary":"The Tourfic WordPress plugin up to and including 3.0.1 does not sanitize comment content that is granted unfiltered HTML for the customer role. A logged-in customer, and any visitor who can self-register a WooCommerce customer account, can store scripts that run in the browsers of people who view the affected pages or feeds.","severity":"medium","cvss":6.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","tourfic","woocommerce","wordpress"],"not_affected_if":["auth-required","default-config"],"how_to_check":"- Check the installed Tourfic version in the WordPress plugins list or `wp plugin get tourfic --field=version`; versions up to and including `3.0.1` are affected.\n- Check whether customer self-registration is enabled under Settings > General > Membership in WordPress.\n- Check whether WooCommerce is active with `wp plugin is-active woocommerce`.","fix":"- Update the Tourfic plugin to a version newer than `3.0.1`; the sources do not name the fixed version.\n- Until updated, remove the unfiltered_html capability from the customer role or disable customer self-registration.","status":"open","published_at":"2026-10-16T14:19:27+00:00","first_seen_at":"2026-10-23T21:57:13+00:00","triaged_at":"2026-10-25T03:59:42+00:00","updated_at":"2026-10-25T03:59:42+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-25T03:59:42Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Tourfic plugin to a version newer than `3.0.1`; the sources do not name the fixed version.\n- Until updated, remove the unfiltered_html capability from the customer role or disable customer self-registration.","reach":"internet","title":"Tourfic WordPress plugin: stored XSS via comments lets customers inject scripts","impact":"medium","summary":"The Tourfic WordPress plugin up to and including 3.0.1 does not sanitize comment content that is granted unfiltered HTML for the customer role. A logged-in customer, and any visitor who can self-register a WooCommerce customer account, can store scripts that run in the browsers of people who view the affected pages or feeds.","category":"package","nicknames":[],"who_cares":["wordpress","woocommerce","tourfic","self-hosted"],"confidence":0.7,"needs_auth":"yes","worst_case":"Attacker runs scripts in visitors' browsers, stealing sessions or actions.","analyst_note":"","how_to_check":"- Check the installed Tourfic version in the WordPress plugins list or `wp plugin get tourfic --field=version`; versions up to and including `3.0.1` are affected.\n- Check whether customer self-registration is enabled under Settings > General > Membership in WordPress.\n- Check whether WooCommerce is active with `wp plugin is-active woocommerce`.","needs_analyst":false,"not_affected_if":["auth-required","default-config"],"who_is_affected":"Sites running the Tourfic plugin at version 3.0.1 or earlier with WooCommerce active. The exposure is greater where customers can self-register, and where the comment REST endpoint, RSS feeds or headless clients render comment content. Sites that do not run Tourfic, or that have updated past 3.0.1, can skip it.","user_interaction":"yes","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000688,"input_tokens":3588,"output_tokens":658,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':13A,16A '-97470':14A,17A '/wp-json/wp/v2/comments':217C '3.0.1':33B,120C 'access':140C,156C 'account':64B,191C 'activ':165C 'admin':177C 'affect':78B 'ai':84C 'approv':178C 'arbitrari':145C 'attack':135C 'authent':134C 'book':87C,89C 'browser':72B 'car':90C 'client':228C 'comment':7A,37B,104C,238C 'content':38B,105C,239C 'content.rendered':220C 'cross':100C 'cross-sit':99C 'custom':9A,46B,52B,63B,111C,169C 'cve':12A,15A 'due':121C 'effect':181C 'endpoint':219C 'escap':128C 'execut':152C 'exploit':179C 'expos':225C 'feed':81B,224C,229C 'freeli':172C 'get':216C 'grant':41B,109C 'headless':227C 'host':21B 'hotel':88C 'html':43B,108C 'includ':32B,119C 'inject':10A,144C,158C 'input':124C 'insuffici':123C 'kses':205C 'let':8A 'level':139C 'list':198C 'listing-pag':197C 'log':50B 'logged-in':49B 'make':130C 'output':127C,202C 'packag':18B 'page':79B,149C,159C,199C 'parti':234C 'payload':209C 'peopl':74B 'plugin':3A,28B,92C,194C 'possibl':132C,182C 'post':206C 'post/comment':222C 'power':85C 'reader':230C 'regist':60B,188C 'register':175C 'render':237C 'rental':91C 'requir':161C 'rest':218C 'return':211C 'role':47B,112C,170C 'rss':223C 'run':69B 'sanit':36B,125C,201C 'script':11A,67B,102C,147C 'self':20B,59B,174C 'self-host':19B 'self-regist':58B 'self-register':173C 'sinc':167C 'site':101C 'store':4A,66B,98C,208C 'subscrib':138C 'subscriber-level':137C 'templat':200C 'third':233C 'third-parti':232C 'tourfic':1A,22B,26B,83C 'travel':86C 'unauthent':185C,215C 'unfilt':42B,107C 'unsanit':212C 'user':155C 'version':115C 'via':6A,103C,106C,213C 'view':76B 'visitor':55B,186C 'vulner':96C 'web':146C 'whenev':153C 'widget':235C 'without':176C 'woocommerc':23B,62B,162C,190C 'wordpress':2A,24B,27B,94C 'wp':204C 'xss':5A","nicknames":[],"mitigations":[],"who_affected":"Sites running the Tourfic plugin at version 3.0.1 or earlier with WooCommerce active. The exposure is greater where customers can self-register, and where the comment REST endpoint, RSS feeds or headless clients render comment content. Sites that do not run Tourfic, or that have updated past 3.0.1, can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T14:19:27+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-97470","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-97470","severity":null,"published_at":"2026-10-16T14:19:27+00:00","modified_at":"2026-10-16T15:17:38+00:00","first_seen_at":"2026-10-23T21:57:13+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"}