{"id":"CVE-2026-123206","kind":"vulnerability","aliases":["CVE-2026-123206"],"related":[],"title":"EdgeChat: unauthenticated users can download public-channel attachments without login","description":"EdgeChat before 2.20.3 contains a missing authentication vulnerability in the GET /files/:key route that allows unauthenticated or banned users to download decrypted public-channel attachments because canAccessFile() accepts a null user id. Attackers holding an attachment object key can omit or supply an invalid token to retrieve plaintext attachments without a session or channel membership.","summary":"EdgeChat before 2.20.3 has a missing authentication check on the GET /files/:key route, because canAccessFile() accepts a null user id. An attacker holding an attachment object key can fetch decrypted attachments from public channels without a session or channel membership.","severity":"medium","cvss":6.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["edgechat","other","self-hosted"],"not_affected_if":["no-public-channel-attachments","version-2.20.3-or-later"],"how_to_check":"- Check the EdgeChat version in use; versions before `2.20.3` are affected.\n- Review whether GET /files/:key is reachable from the internet.","fix":"- EdgeChat: upgrade to `2.20.3` or later","status":"open","published_at":"2026-11-05T19:17:20+00:00","first_seen_at":"2026-11-05T19:40:36+00:00","triaged_at":"2026-11-05T19:43:25+00:00","updated_at":"2026-11-05T19:43:25+00:00","category":"other","confidence":0.7,"triage":{"at":"2026-11-05T19:43:25Z","model":"claude-haiku-5-5","output":{"fix":"- EdgeChat: upgrade to `2.20.3` or later","reach":"internet","title":"EdgeChat: unauthenticated users can download public-channel attachments without login","impact":"medium","summary":"EdgeChat before 2.20.3 has a missing authentication check on the GET /files/:key route, because canAccessFile() accepts a null user id. An attacker holding an attachment object key can fetch decrypted attachments from public channels without a session or channel membership.","audience":"businesses","category":"other","nicknames":[],"who_cares":["edgechat","self-hosted"],"confidence":0.7,"fix_status":"available","needs_auth":"no","worst_case":"Decrypted public-channel attachments readable by unauthenticated or banned users","analyst_note":"Confirm how attachment object keys are exposed and whether the vendor patch page at the linked Patch and VulnCheck advisory URLs confirms the fixed version.","how_to_check":"- Check the EdgeChat version in use; versions before `2.20.3` are affected.\n- Review whether GET /files/:key is reachable from the internet.\n- unknown for other checks","plain_action":"","needs_analyst":true,"not_affected_if":["version-2.20.3-or-later","no-public-channel-attachments"],"who_is_affected":"Teams running self-hosted EdgeChat before 2.20.3 with public channels that carry attachments. Exposure depends on attachment object keys being obtainable by an attacker; deployments on newer versions are not affected.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"medium"},"cost_usd":0.000707,"input_tokens":4286,"output_tokens":556,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-123206':14A,17A '-2026':13A,16A '/files':34B,75C '2.20.3':25B,66C 'accept':39B,93C 'allow':79C 'attach':9A,48B,54B,90C,101C,114C 'attack':45B,98C 'authent':29B,70C 'ban':82C 'canaccessfil':38B,92C 'channel':8A,57B,62B,89C,119C 'check':30B 'contain':67C 'cve':12A,15A 'decrypt':53B,86C 'download':5A,85C 'edgechat':1A,18B,23B,64C 'fetch':52B 'get':33B,74C 'hold':46B,99C 'host':22B 'id':43B,97C 'invalid':109C 'key':35B,50B,76C,103C 'login':11A 'membership':63B,120C 'miss':28B,69C 'null':41B,95C 'object':49B,102C 'omit':105C 'plaintext':113C 'public':7A,56B,88C 'public-channel':6A,87C 'retriev':112C 'rout':36B,77C 'self':21B 'self-host':20B 'session':60B,117C 'suppli':107C 'token':110C 'unauthent':2A,80C 'user':3A,42B,83C,96C 'vulner':71C 'without':10A,58B,115C","nicknames":[],"mitigations":[],"who_affected":"Teams running self-hosted EdgeChat before 2.20.3 with public channels that carry attachments. Exposure depends on attachment object keys being obtainable by an attacker; deployments on newer versions are not affected.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["edgechat","medium","other","selfhosted"],"campaign_type":null,"first_public_at":"2026-11-05T19:17:20+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:P/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":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-123206","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-123206","severity":null,"published_at":"2026-11-05T19:17:20+00:00","modified_at":"2026-11-05T19:17:20+00:00","first_seen_at":"2026-11-05T19:40:36+00:00","fetched_at":"2026-11-05T19:40:36+00:00","note":null}],"documents":[{"id":79208,"url":"https://github.com/aozorae/Edgechat/commit/38cb5cf42d8014ca64624d4f4d565419b2fbeda9","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":79209,"url":"https://www.vulncheck.com/advisories/edgechat-before-2.20.3-missing-authentication-for-attachment-download-via-get-files-key","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.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"}