{"id":"CVE-2026-92766","kind":"vulnerability","aliases":["CVE-2026-92766"],"related":[],"title":"Vitepos POS for WooCommerce: SQL injection lets unauthenticated users read database","description":"The Vitepos – Point of Sale (POS) for WooCommerce plugin for WordPress is vulnerable to generic SQL Injection via the 'src_by' parameter in all versions up to, and including, 3.5.1 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. This makes it possible for unauthenticated attackers, or authenticated attackers holding any POS role (such as vtpos-cashier), to exploit the vulnerability, as the /vitepos/v1/vendor/list REST route's permission callback requires only a POS role assignment rather than any elevated WordPress capability.","summary":"The Vitepos point-of-sale plugin for WordPress and WooCommerce fails to escape the src_by parameter, so attacker input is concatenated into SQL queries. An unauthenticated attacker, or anyone holding a POS role such as vtpos-cashier, can append queries to extract sensitive data from the database.","severity":"high","cvss":7.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","vitepos","woocommerce","wordpress"],"not_affected_if":["plugin-not-installed","plugin-updated"],"how_to_check":"- Check the installed Vitepos plugin version in the WordPress admin Plugins screen or with `wp plugin get vitepos`\n- Confirm whether the `/vitepos/v1/vendor/list` REST route responds to requests without authentication\n- Review web server logs for requests to `/vitepos/v1/vendor/list` containing `src_by`","fix":"- Update the Vitepos plugin to a version later than `3.5.1`, as the sources do not name a fixed version\n- If no fixed version exists, deactivate the plugin until it is patched\n- Rotate WordPress and WooCommerce database credentials and review user and order data if the plugin was exposed","status":"open","published_at":"2026-10-16T09:17:04+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","triaged_at":"2026-10-25T03:25:10+00:00","updated_at":"2026-10-25T03:25:10+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-25T03:25:10Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Vitepos plugin to a version later than `3.5.1`, as the sources do not name a fixed version\n- If no fixed version exists, deactivate the plugin until it is patched\n- Rotate WordPress and WooCommerce database credentials and review user and order data if the plugin was exposed","reach":"internet","title":"Vitepos POS for WooCommerce: SQL injection lets unauthenticated users read database","impact":"high","summary":"The Vitepos point-of-sale plugin for WordPress and WooCommerce fails to escape the src_by parameter, so attacker input is concatenated into SQL queries. An unauthenticated attacker, or anyone holding a POS role such as vtpos-cashier, can append queries to extract sensitive data from the database.","category":"package","nicknames":[],"who_cares":["wordpress","woocommerce","vitepos","self-hosted"],"confidence":0.8,"needs_auth":"no","worst_case":"Unauthenticated attacker reads sensitive database contents through injected SQL","analyst_note":"Find the fixed plugin version and the vendor advisory; the NVD entry gives only 'all versions up to 3.5.1'.","how_to_check":"- Check the installed Vitepos plugin version in the WordPress admin Plugins screen or with `wp plugin get vitepos`\n- Confirm whether the `/vitepos/v1/vendor/list` REST route responds to requests without authentication\n- Review web server logs for requests to `/vitepos/v1/vendor/list` containing `src_by`","needs_analyst":true,"not_affected_if":["plugin-not-installed","plugin-updated"],"who_is_affected":"Sites running the Vitepos POS plugin version 3.5.1 or earlier with WooCommerce. The REST route is reachable by unauthenticated visitors and by accounts with any POS role, so any site with this plugin active is in scope. Sites that do not run the plugin can skip it.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.000702,"input_tokens":3490,"output_tokens":706,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':13A,16A '-92766':14A,17A '/vitepos/v1/vendor/list':176C '3.5.1':104C 'addit':133C 'alreadi':137C 'anyon':55B 'append':66B,132C 'assign':187C 'attack':44B,53B,130C,157C,160C 'authent':159C 'callback':181C 'capabl':193C 'cashier':64B,169C 'concaten':47B 'cve':12A,15A 'data':71B 'databas':11A,74B,150C 'due':105C 'elev':191C 'escap':38B,108C 'exist':121C,138C 'exploit':171C 'extract':69B,145C 'fail':36B 'generic':89C 'hold':56B,161C 'host':21B 'includ':103C 'inform':147C 'inject':6A,91C 'input':45B 'insuffici':107C 'lack':115C 'let':7A 'make':125C,152C 'packag':18B 'paramet':42B,96C,113C 'permiss':180C 'plugin':31B,83C 'point':28B,77C 'point-of-sal':27B 'pos':2A,58B,80C,163C,185C 'possibl':127C,154C 'prepar':118C 'queri':50B,67B,123C,135C,139C 'rather':188C 'read':10A 'requir':182C 'rest':177C 'role':59B,164C,186C 'rout':178C 'sale':30B,79C 'self':20B 'self-host':19B 'sensit':70B,146C 'sql':5A,49B,90C,122C,134C 'src':40B,94C 'suffici':117C 'suppli':112C 'unauthent':8A,52B,129C,156C 'use':143C 'user':9A,111C 'version':99C 'via':92C 'vitepo':1A,22B,26B,76C 'vtpos':63B,168C 'vtpos-cashi':62B,167C 'vulner':87C,173C 'woocommerc':4A,23B,35B,82C 'wordpress':24B,33B,85C,192C","nicknames":[],"mitigations":[],"who_affected":"Sites running the Vitepos POS plugin version 3.5.1 or earlier with WooCommerce. The REST route is reachable by unauthenticated visitors and by accounts with any POS role, so any site with this plugin active is in scope. Sites that do not run the plugin can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T09:17:04+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-92766","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-92766","severity":null,"published_at":"2026-10-16T09:17:04+00:00","modified_at":"2026-10-16T15:17:35+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"}