{"id":"CVE-2026-100362","kind":"vulnerability","aliases":["CVE-2026-100362"],"related":[],"title":"SuiteCRM: OAuth2 login errors reveal which usernames exist","description":"SuiteCRM is an open-source, enterprise-ready Customer Relationship Management (CRM) software application. Prior to 7.15.2 and 8.10.2, the /legacy/Api/V8/OAuth2 password-grant endpoint returns distinct error messages for an invalid username and an invalid password. An unauthenticated remote attacker can use those response differences to enumerate valid CRM usernames and target confirmed accounts with password spraying, credential stuffing, brute-force, or social-engineering attacks. This issue is fixed in versions 7.15.2 and 8.10.2.","summary":"SuiteCRM's OAuth2 password-grant endpoint returns different error messages for a wrong username and a wrong password. An unauthenticated attacker can use this to confirm valid usernames and then target those accounts with password guessing.","severity":"medium","cvss":6.9,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["crm","package","self-hosted","suitecrm"],"not_affected_if":["internal-only-network","patched-version"],"how_to_check":"- Check the SuiteCRM version in the admin panel or the installed package; versions below `7.15.2` on the 7.x line and below `8.10.2` on the 8.x line are affected.\n- Send a password-grant request to `/legacy/Api/V8/OAuth2` with a made-up username and then with a known username and a wrong password, and compare the error messages.","fix":"- SuiteCRM 7.x: `7.15.2`\n- SuiteCRM 8.x: `8.10.2`","status":"open","published_at":"2026-11-05T19:16:58+00:00","first_seen_at":"2026-11-05T19:40:34+00:00","triaged_at":"2026-11-05T19:43:15+00:00","updated_at":"2026-11-05T19:43:15+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-05T19:43:15Z","model":"claude-haiku-5-5","output":{"fix":"- SuiteCRM 7.x: `7.15.2`\n- SuiteCRM 8.x: `8.10.2`","reach":"internet","title":"SuiteCRM: OAuth2 login errors reveal which usernames exist","impact":"low","summary":"SuiteCRM's OAuth2 password-grant endpoint returns different error messages for a wrong username and a wrong password. An unauthenticated attacker can use this to confirm valid usernames and then target those accounts with password guessing.","audience":"businesses","category":"package","nicknames":[],"who_cares":["suitecrm","self-hosted","crm"],"confidence":0.8,"fix_status":"available","needs_auth":"no","worst_case":"attacker learns valid usernames for later password attacks","analyst_note":"","how_to_check":"- Check the SuiteCRM version in the admin panel or the installed package; versions below `7.15.2` on the 7.x line and below `8.10.2` on the 8.x line are affected.\n- Send a password-grant request to `/legacy/Api/V8/OAuth2` with a made-up username and then with a known username and a wrong password, and compare the error messages.","plain_action":"","needs_analyst":false,"not_affected_if":["patched-version","internal-only-network"],"who_is_affected":"Any SuiteCRM instance exposed to the internet or to untrusted networks that has the /legacy/Api/V8/OAuth2 endpoint reachable. The difference in error messages is visible without logging in, so internal-only deployments on trusted networks carry less risk. unknown whether the endpoint is disabled by default in any configuration.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000737,"input_tokens":4389,"output_tokens":596,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-100362':11A,14A '-2026':10A,13A '/legacy/api/v8/oauth2':79C '7.15.2':75C,133C '8.10.2':77C,135C 'account':54B,113C 'applic':72C 'attack':42B,99C,126C 'brute':120C 'brute-forc':119C 'confirm':47B,112C 'credenti':117C 'crm':15B,70C,108C 'custom':67C 'cve':9A,12A 'differ':29B,104C 'distinct':85C 'endpoint':27B,83C 'engin':125C 'enterpris':65C 'enterprise-readi':64C 'enumer':106C 'error':4A,30B,86C 'exist':8A 'fix':130C 'forc':121C 'grant':26B,82C 'guess':57B 'host':19B 'invalid':90C,94C 'issu':128C 'login':3A 'manag':69C 'messag':31B,87C 'oauth2':2A,23B 'open':62C 'open-sourc':61C 'packag':16B 'password':25B,39B,56B,81C,95C,115C 'password-gr':24B,80C 'prior':73C 'readi':66C 'relationship':68C 'remot':98C 'respons':103C 'return':28B,84C 'reveal':5A 'self':18B 'self-host':17B 'social':124C 'social-engin':123C 'softwar':71C 'sourc':63C 'spray':116C 'stuf':118C 'suitecrm':1A,20B,21B,58C 'target':52B,111C 'unauthent':41B,97C 'use':44B,101C 'usernam':7A,35B,49B,91C,109C 'valid':48B,107C 'version':132C 'wrong':34B,38B","nicknames":[],"mitigations":[],"who_affected":"Any SuiteCRM instance exposed to the internet or to untrusted networks that has the /legacy/Api/V8/OAuth2 endpoint reachable. The difference in error messages is visible without logging in, so internal-only deployments on trusted networks carry less risk. unknown whether the endpoint is disabled by default in any configuration.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["crm","medium","package","selfhosted","suitecrm"],"campaign_type":null,"first_public_at":"2026-10-12T17:45:37+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-100362","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-100362","severity":null,"published_at":"2026-11-05T19:16:58+00:00","modified_at":"2026-11-05T19:16:58+00:00","first_seen_at":"2026-11-05T19:40:34+00:00","fetched_at":"2026-11-05T19:40:34+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":79159,"url":"https://github.com/SuiteCRM/SuiteCRM/security/advisories/GHSA-rc46-hjjp-4jv5","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-12T17:45:37+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"}