{"id":"CVE-2026-103984","kind":"vulnerability","aliases":["CVE-2026-103984"],"related":[],"title":"FreeScout: agents can view unrelated customer profiles when visibility limits are on","description":"FreeScout is a self-hosted help desk and shared mailbox. Prior to 1.8.231, when limit_user_customer_visibility is enabled, the load_customer_info AJAX action performs a global lookup using an attacker-controlled customer email and checks only whether the agent can access a separately supplied mailbox. A non-admin agent can name an accessible mailbox and retrieve an unrelated customer's rendered profile without invoking CustomerPolicy::view(). The response can expose names, email addresses, phone numbers, company and job information, postal addresses, social profiles, websites, and confidential internal agent notes. This issue is fixed in version 1.8.231.","summary":"FreeScout, a self-hosted help desk, lets a non-admin agent pull the rendered profile of a customer outside their access when limit_user_customer_visibility is enabled. The response can include contact details, postal address, social profiles and internal agent notes.","severity":"medium","cvss":6.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["freescout","help-desk","other","self-hosted"],"not_affected_if":["fixed-version-1.8.231-or-later","limit-user-customer-visibility-off"],"how_to_check":"- Check the FreeScout version in the installed application: `unknown` for the exact command, the sources do not say.\n- Check whether `limit_user_customer_visibility` is enabled in the FreeScout configuration.","fix":"- Move to FreeScout `1.8.231` or later.","status":"open","published_at":"2026-11-06T17:17:10+00:00","first_seen_at":"2026-11-06T17:43:11+00:00","triaged_at":"2026-11-06T17:45:16+00:00","updated_at":"2026-11-06T17:45:16+00:00","category":"other","confidence":0.8,"triage":{"at":"2026-11-06T17:45:16Z","model":"claude-haiku-5-5","output":{"fix":"- Move to FreeScout `1.8.231` or later.","reach":"network","title":"FreeScout: agents can view unrelated customer profiles when visibility limits are on","impact":"medium","summary":"FreeScout, a self-hosted help desk, lets a non-admin agent pull the rendered profile of a customer outside their access when limit_user_customer_visibility is enabled. The response can include contact details, postal address, social profiles and internal agent notes.","audience":"businesses","category":"other","nicknames":[],"who_cares":["freescout","self-hosted","help-desk"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"agent reads unrelated customers' contact details and internal notes","analyst_note":"","how_to_check":"- Check the FreeScout version in the installed application: `unknown` for the exact command, the sources do not say.\n- Check whether `limit_user_customer_visibility` is enabled in the FreeScout configuration.","plain_action":"","needs_analyst":false,"not_affected_if":["fixed-version-1.8.231-or-later","limit-user-customer-visibility-off"],"who_is_affected":"Only self-hosted FreeScout instances before 1.8.231 where limit_user_customer_visibility is enabled are exposed. Any agent account on such an instance can reach the flaw, so teams without that setting or on managed hosting can skip it.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000698,"input_tokens":4371,"output_tokens":521,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-103984':13A,16A '-2026':12A,15A '1.8.231':82C,170C 'access':47B,114C,127C 'action':95C 'address':62B,147C,155C 'admin':36B,122C 'agent':2A,37B,67B,112C,123C,162C 'ajax':94C 'attack':103C 'attacker-control':102C 'check':108C 'compani':150C 'confidenti':160C 'contact':59B 'control':104C 'custom':6A,44B,51B,86C,92C,105C,133C 'customerpolici':139C 'cve':11A,14A 'desk':20B,31B,76C 'detail':60B 'email':106C,146C 'enabl':54B,89C 'expos':144C 'fix':167C 'freescout':1A,17B,25B,69C 'global':98C 'help':19B,30B,75C 'help-desk':18B 'host':24B,29B,74C 'includ':58B 'info':93C 'inform':153C 'intern':66B,161C 'invok':138C 'issu':165C 'job':152C 'let':32B 'limit':10A,49B,84C 'load':91C 'lookup':99C 'mailbox':79C,118C,128C 'name':125C,145C 'non':35B,121C 'non-admin':34B,120C 'note':68B,163C 'number':149C 'outsid':45B 'perform':96C 'phone':148C 'postal':61B,154C 'prior':80C 'profil':7A,41B,64B,136C,157C 'pull':38B 'render':40B,135C 'respons':56B,142C 'retriev':130C 'self':23B,28B,73C 'self-host':22B,27B,72C 'separ':116C 'share':78C 'social':63B,156C 'suppli':117C 'unrel':5A,132C 'use':100C 'user':50B,85C 'version':169C 'view':4A,140C 'visibl':9A,52B,87C 'websit':158C 'whether':110C 'without':137C","nicknames":[],"mitigations":[],"who_affected":"Only self-hosted FreeScout instances before 1.8.231 where limit_user_customer_visibility is enabled are exposed. Any agent account on such an instance can reach the flaw, so teams without that setting or on managed hosting can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["freescout","helpdesk","medium","other","selfhosted"],"campaign_type":null,"search_a":"'-103984':13A,16A '-2026':12A,15A 'agent':2A 'custom':6A 'cve':11A,14A 'freescout':1A 'limit':10A 'profil':7A 'unrel':5A 'view':4A 'visibl':9A","search_b":"'access':47B 'address':62B 'admin':36B 'agent':37B,67B 'contact':59B 'custom':44B,51B 'desk':20B,31B 'detail':60B 'enabl':54B 'freescout':17B,25B 'help':19B,30B 'help-desk':18B 'host':24B,29B 'includ':58B 'intern':66B 'let':32B 'limit':49B 'non':35B 'non-admin':34B 'note':68B 'outsid':45B 'postal':61B 'profil':41B,64B 'pull':38B 'render':40B 'respons':56B 'self':23B,28B 'self-host':22B,27B 'social':63B 'user':50B 'visibl':52B","search_c":"'1.8.231':82C,170C 'access':114C,127C 'action':95C 'address':147C,155C 'admin':122C 'agent':112C,123C,162C 'ajax':94C 'attack':103C 'attacker-control':102C 'check':108C 'compani':150C 'confidenti':160C 'control':104C 'custom':86C,92C,105C,133C 'customerpolici':139C 'desk':76C 'email':106C,146C 'enabl':89C 'expos':144C 'fix':167C 'freescout':69C 'global':98C 'help':75C 'host':74C 'info':93C 'inform':153C 'intern':161C 'invok':138C 'issu':165C 'job':152C 'limit':84C 'load':91C 'lookup':99C 'mailbox':79C,118C,128C 'name':125C,145C 'non':121C 'non-admin':120C 'note':163C 'number':149C 'perform':96C 'phone':148C 'postal':154C 'prior':80C 'profil':136C,157C 'render':135C 'respons':142C 'retriev':130C 'self':73C 'self-host':72C 'separ':116C 'share':78C 'social':156C 'suppli':117C 'unrel':132C 'use':100C 'user':85C 'version':169C 'view':140C 'visibl':87C 'websit':158C 'whether':110C 'without':137C","first_public_at":"2026-08-14T13:35:08+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-103984","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-103984","severity":null,"published_at":"2026-11-06T17:17:10+00:00","modified_at":"2026-11-06T17:17:10+00:00","first_seen_at":"2026-11-06T17:43:11+00:00","fetched_at":"2026-11-06T17:43:11+00:00","note":null}],"documents":[{"id":88367,"url":"https://github.com/freescout-help-desk/freescout/commit/f0f8fd56253f1d7f42569ad30fb96375a473817a","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":88368,"url":"https://github.com/freescout-help-desk/freescout/releases/tag/1.8.231","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":88369,"url":"https://github.com/freescout-help-desk/freescout/security/advisories/GHSA-cr68-27qv-p5m4","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-08-14T13:35:08+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"}