Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/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
AC:H reflects the prerequisite non-default configuration; PR:L for required authenticated account; C:H for disclosed message text; no integrity or availability impact.
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
Lifecycle Timeline
5DescriptionGitHub Advisory
Zulip is an open-source team collaboration tool. Prior to 12.0, With message_edit_history_visibility_policy set to "moves", /api/v1/messages/{id}/history still returns historical content values, allowing low-privilege users to recover text that was edited away from other users' messages. This vulnerability is fixed in 12.0.
AnalysisAI
Zulip's message history API endpoint fails to enforce the message_edit_history_visibility_policy when set to 'moves', exposing full prior message text to low-privilege authenticated users via /api/v1/messages/{id}/history. Administrators who deliberately configured this policy to limit edit history visibility to move-events only will find that the underlying content is still recoverable through the API, bypassing the intended access control. No public exploit has been identified and EPSS is 0.04% (12th percentile), but the confidentiality impact is rated High in the CVSS 4.0 assessment for instances operating under this configuration.
Technical ContextAI
Zulip (CPE: cpe:2.3:a:zulip:zulip:*:*:*:*:*:*:*:*) is an open-source team collaboration platform offering threaded messaging. The message_edit_history_visibility_policy setting provides administrators a privacy control over what edit metadata is surfaced to users; the 'moves' value is intended to restrict visibility to topic or stream relocations only, hiding the textual delta of edits. CWE-284 (Improper Access Control) is the root cause: the REST endpoint /api/v1/messages/{id}/history does not consult the configured policy before returning historical content values, rendering the access control setting inoperative for this code path. The CVSS 4.0 vector's AT:P (Attack Requirements: Present) corroborates that exploitation is gated on a specific deployment precondition - the 'moves' policy being active.
RemediationAI
The primary fix is upgrading to Zulip 12.0, which resolves the improper access control in the message history endpoint per the vendor advisory at https://github.com/zulip/zulip/security/advisories/GHSA-jp8f-mvv6-89cr. As a compensating control prior to patching, administrators can change message_edit_history_visibility_policy away from 'moves' to a less restrictive setting (such as 'everyone' or 'admins-only'), accepting the trade-off that the intended privacy restriction is removed entirely. Restricting API access to /api/v1/messages/{id}/history at the network or WAF layer is another option, but this will break legitimate Zulip client functionality that uses message history to render edit indicators. The cleanest and only complete remediation is the 12.0 upgrade.
Zulip is an open source team chat server. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitable,
Zulip is an open-source team collaboration tool with topic-based threading. Rated critical severity (CVSS 9.8), this vul
In Zulip Server versions from 1.7.0 to before 2.0.7, a bug in the new user signup process meant that users who registere
Zulip Server before 2.1.3 allows XSS via a Markdown link, with resultant account takeover. Rated medium severity (CVSS 5
In Zulip Server before 1.7.1, on a server with multiple realms, a vulnerability in the invitation system lets an authori
Zulip is an open source team chat tool. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, low
Zulip Server 2.x before 2.1.7 allows eval injection if a privileged attacker were able to write directly to the postgres
Zulip is an open-source team collaboration tool. Rated high severity (CVSS 8.2), this vulnerability is remotely exploita
Jenkins Zulip Plugin 1.1.0 and earlier stored credentials unencrypted in its global configuration file on the Jenkins ma
Zulip from 8.0 to 8.3 contains a memory leak vulnerability in the handling of popovers. Rated high severity (CVSS 7.5),
Zulip Server before 2.1.5 has Incorrect Access Control because 0198_preregistrationuser_invited_as adds the administrato
Zulip is an open source group chat application. Rated high severity (CVSS 7.4), this vulnerability is remotely exploitab
Same weakness CWE-284 – Improper Access Control
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-29537