{"id":"CVE-2026-115574","kind":"vulnerability","aliases":["CVE-2026-115574"],"related":[],"title":"Zulip: logged-out visitors can read custom profile fields of all users","description":"Zulip is an open-source team collaboration tool. From 11.0 until 12.2, organizations with web-public channels enabled exposed the GET /json/users endpoint to logged-out spectators, and a missing access-control check allowed include_custom_profile_fields=true to return every user's custom profile field values in addition to the documented limited directory data. This exposed those custom profile field values to unauthenticated visitors. This issue is fixed in version 12.2.","summary":"From Zulip 11.0 up to 12.2, organizations with web-public channels let logged-out visitors call GET /json/users with include_custom_profile_fields=true and receive every user's custom profile field values. An attacker with no account can read that personal profile data.","severity":"medium","cvss":5.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["other","self-hosted","web-public-channels","zulip"],"not_affected_if":["no-web-public-channels","version-12.2-or-later","version-below-11.0"],"how_to_check":"- Check the Zulip server version with `zulip-server --version` or the installed release; affected versions are 11.0 through 12.2 (before 12.2).\n- Check whether web-public channels are enabled for the organization in the organization settings.\n- Test whether `GET /json/users?include_custom_profile_fields=true` returns custom profile field values without logging in.","fix":"- Zulip `12.2`","status":"open","published_at":"2026-11-04T20:19:02+00:00","first_seen_at":"2026-11-04T20:29:03+00:00","triaged_at":"2026-11-04T20:30:05+00:00","updated_at":"2026-11-04T20:30:05+00:00","category":"other","confidence":0.8,"triage":{"at":"2026-11-04T20:30:05Z","model":"claude-haiku-5-5","output":{"fix":"- Zulip `12.2`","reach":"internet","title":"Zulip: logged-out visitors can read custom profile fields of all users","impact":"medium","summary":"From Zulip 11.0 up to 12.2, organizations with web-public channels let logged-out visitors call GET /json/users with include_custom_profile_fields=true and receive every user's custom profile field values. An attacker with no account can read that personal profile data.","audience":"businesses","category":"other","nicknames":[],"who_cares":["zulip","self-hosted","web-public-channels"],"confidence":0.8,"fix_status":"available","needs_auth":"no","worst_case":"logged-out visitors read every user's custom profile field values","analyst_note":"","how_to_check":"- Check the Zulip server version with `zulip-server --version` or the installed release; affected versions are 11.0 through 12.2 (before 12.2).\n- Check whether web-public channels are enabled for the organization in the organization settings.\n- Test whether `GET /json/users?include_custom_profile_fields=true` returns custom profile field values without logging in.","plain_action":"","needs_analyst":false,"not_affected_if":["version-below-11.0","version-12.2-or-later","no-web-public-channels"],"who_is_affected":"Only Zulip servers running versions 11.0 through 12.2 where the organization has web-public channels enabled are exposed. Organizations on older versions or without web-public channels are not exposed through this endpoint. Self-hosted and managed Zulip deployments both need to be checked against their version.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000705,"input_tokens":4206,"output_tokens":568,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-115574':16A,19A '-2026':15A,18A '/json/users':48B,98C '11.0':31B,85C '12.2':34B,87C,151C 'access':109C 'access-control':108C 'account':68B 'addit':128C 'allow':112C 'attack':65B 'call':46B 'channel':27B,40B,93C 'check':111C 'collabor':82C 'control':110C 'custom':8A,51B,60B,114C,123C,138C 'cve':14A,17A 'data':74B,134C 'directori':133C 'document':131C 'enabl':94C 'endpoint':99C 'everi':57B,120C 'expos':95C,136C 'field':10A,53B,62B,116C,125C,140C 'fix':148C 'get':47B,97C 'host':23B 'includ':50B,113C 'issu':146C 'let':41B 'limit':132C 'log':3A,43B,102C 'logged-out':2A,42B,101C 'miss':107C 'open':79C 'open-sourc':78C 'organ':35B,88C 'person':72B 'profil':9A,52B,61B,73B,115C,124C,139C 'public':26B,39B,92C 'read':7A,70B 'receiv':56B 'return':119C 'self':22B 'self-host':21B 'sourc':80C 'spectat':104C 'team':81C 'tool':83C 'true':54B,117C 'unauthent':143C 'user':13A,58B,121C 'valu':63B,126C,141C 'version':150C 'visitor':5A,45B,144C 'web':25B,38B,91C 'web-publ':37B,90C 'web-public-channel':24B 'zulip':1A,28B,30B,75C","nicknames":[],"mitigations":[],"who_affected":"Only Zulip servers running versions 11.0 through 12.2 where the organization has web-public channels enabled are exposed. Organizations on older versions or without web-public channels are not exposed through this endpoint. Self-hosted and managed Zulip deployments both need to be checked against their version.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["medium","other","selfhosted","webpublicchannels","zulip"],"campaign_type":null,"first_public_at":"2026-08-10T17:23:52+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-115574","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-115574","severity":null,"published_at":"2026-11-04T20:19:02+00:00","modified_at":"2026-11-04T20:19:02+00:00","first_seen_at":"2026-11-04T20:29:03+00:00","fetched_at":"2026-11-04T20:29:03+00:00","note":null}],"documents":[{"id":70200,"url":"https://github.com/zulip/zulip/commit/6f33a8fa345ba776039a3f46131c253599a3ba15","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":70201,"url":"https://github.com/zulip/zulip/commit/774d4c7b12755178fa406f0c0f3b2cafdbbec32c","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":69757,"url":"https://github.com/zulip/zulip/releases/tag/12.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":70203,"url":"https://github.com/zulip/zulip/security/advisories/GHSA-3m37-hwq6-jrj8","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-08-10T17:23:52+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}