{"id":"CVE-2026-63214","kind":"vulnerability","aliases":["CVE-2026-63214"],"related":[],"title":"SuiteCRM: legacy REST query lets authenticated users read password hashes","description":"SuiteCRM is an open-source, enterprise-ready Customer Relationship Management (CRM) software application. Prior to 7.15.2 and 8.10.2, legacy REST methods append an authenticated caller's query parameter as a SQL WHERE clause after insufficient structural validation. The affected flow begins at /service/v4_1/rest.php and uses get_entry_list, get_entries_count, and query to carry attacker-controlled data or authorization state into the security-sensitive operation. An account with list permission on a module can bypass the user_hash filter, retrieve password hashes and other database data, and use recovered administrative credentials to compromise the application. This issue is fixed in versions 7.15.2 and 8.10.2.","summary":"SuiteCRM's legacy REST endpoint appends a caller's query parameter as a raw SQL WHERE clause without enough validation. An authenticated user with list permission on a module can bypass the user_hash filter, read password hashes and other database data, and use recovered admin credentials to take over the application.","severity":"high","cvss":8.8,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","php","rest-api","self-hosted","suitecrm"],"not_affected_if":["no-legacy-rest-endpoint","patched-version"],"how_to_check":"- Check the installed SuiteCRM version in the admin console or in the application's version file; compare against `7.15.2` (7.x line) and `8.10.2` (8.x line).\n- Look for requests to `/service/v4_1/rest.php` using `get_entry_list`, `get_entries_count` or `query` in web server access logs.","fix":"- SuiteCRM 7.x: move to `7.15.2`\n- SuiteCRM 8.x: move to `8.10.2`","status":"open","published_at":"2026-11-05T19:17:23+00:00","first_seen_at":"2026-11-05T19:40:37+00:00","triaged_at":"2026-11-05T19:42:35+00:00","updated_at":"2026-11-05T19:42:35+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-05T19:42:35Z","model":"claude-haiku-5-5","output":{"fix":"- SuiteCRM 7.x: move to `7.15.2`\n- SuiteCRM 8.x: move to `8.10.2`","reach":"network","title":"SuiteCRM: legacy REST query lets authenticated users read password hashes","impact":"high","summary":"SuiteCRM's legacy REST endpoint appends a caller's query parameter as a raw SQL WHERE clause without enough validation. An authenticated user with list permission on a module can bypass the user_hash filter, read password hashes and other database data, and use recovered admin credentials to take over the application.","audience":"businesses","category":"package","nicknames":[],"who_cares":["suitecrm","self-hosted","php","rest-api"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"Password hashes readable, admin credentials recovered, full application takeover","analyst_note":"","how_to_check":"- Check the installed SuiteCRM version in the admin console or in the application's version file; compare against `7.15.2` (7.x line) and `8.10.2` (8.x line).\n- Look for requests to `/service/v4_1/rest.php` using `get_entry_list`, `get_entries_count` or `query` in web server access logs.","plain_action":"","needs_analyst":false,"not_affected_if":["patched-version","no-legacy-rest-endpoint"],"who_is_affected":"Any SuiteCRM instance running a version before 7.15.2 or 8.10.2 that exposes the legacy REST endpoint at /service/v4_1/rest.php is exposed. The attacker needs a valid account with list permission on at least one module, so instances without untrusted user accounts carry less risk, but a compromised low-privilege account is enough to escalate.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000761,"input_tokens":4432,"output_tokens":636,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':12A,15A '-63214':13A,16A '/service/v4_1/rest.php':122C '7.15.2':95C,184C '8.10.2':97C,186C 'account':149C 'admin':71B 'administr':172C 'affect':118C 'api':21B 'append':31B,101C 'applic':77B,92C,177C 'attack':136C 'attacker-control':135C 'authent':6A,47B,103C 'author':140C 'begin':120C 'bypass':56B,157C 'caller':33B,104C 'carri':134C 'claus':42B,112C 'compromis':175C 'control':137C 'count':130C 'credenti':72B,173C 'crm':90C 'custom':87C 'cve':11A,14A 'data':67B,138C,168C 'databas':66B,167C 'endpoint':30B 'enough':44B 'enterpris':85C 'enterprise-readi':84C 'entri':126C,129C 'filter':60B,161C 'fix':181C 'flow':119C 'get':125C,128C 'hash':10A,59B,63B,160C,164C 'host':24B 'insuffici':114C 'issu':179C 'legaci':2A,28B,98C 'let':5A 'list':50B,127C,151C 'manag':89C 'method':100C 'modul':54B,155C 'open':82C 'open-sourc':81C 'oper':147C 'packag':17B 'paramet':36B,107C 'password':9A,62B,163C 'permiss':51B,152C 'php':18B 'prior':93C 'queri':4A,35B,106C,132C 'raw':39B 'read':8A,61B 'readi':86C 'recov':70B,171C 'relationship':88C 'rest':3A,20B,29B,99C 'rest-api':19B 'retriev':162C 'secur':145C 'security-sensit':144C 'self':23B 'self-host':22B 'sensit':146C 'softwar':91C 'sourc':83C 'sql':40B,110C 'state':141C 'structur':115C 'suitecrm':1A,25B,26B,78C 'take':74B 'use':69B,124C,170C 'user':7A,48B,58B,159C 'valid':45B,116C 'version':183C 'without':43B","nicknames":[],"mitigations":[],"who_affected":"Any SuiteCRM instance running a version before 7.15.2 or 8.10.2 that exposes the legacy REST endpoint at /service/v4_1/rest.php is exposed. The attacker needs a valid account with list permission on at least one module, so instances without untrusted user accounts carry less risk, but a compromised low-privilege account is enough to escalate.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["high","package","php","restapi","selfhosted","suitecrm"],"campaign_type":null,"first_public_at":"2026-07-31T14:38:22+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-63214","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-63214","severity":null,"published_at":"2026-11-05T19:17:23+00:00","modified_at":"2026-11-05T19:17:23+00:00","first_seen_at":"2026-11-05T19:40:37+00:00","fetched_at":"2026-11-05T19:40:37+00:00","note":null}],"documents":[{"id":79135,"url":"https://github.com/SuiteCRM/SuiteCRM-Core/commit/a11f50180d939f639cc468b5d536e8ad714dfb68","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":79136,"url":"https://github.com/SuiteCRM/SuiteCRM-Core/releases/tag/v8.10.2","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":79137,"url":"https://github.com/SuiteCRM/SuiteCRM/commit/d6bca97a0159ec019a969b86eca32affab3beb7c","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":79138,"url":"https://github.com/SuiteCRM/SuiteCRM/releases/tag/v7.15.2","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":79268,"url":"https://github.com/SuiteCRM/SuiteCRM/security/advisories/GHSA-gjgm-wrr6-hrmp","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-07-31T14:38:22+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"}],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}