Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/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
Requires authenticated account (PR:L) over network; low confidentiality impact from room state disclosure only; no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Dendrite through 0.13.8 contains an improper access control vulnerability in the syncapi /context endpoint (syncapi/routing/context.go) that allows authenticated local users to access post-leave room state events by exploiting a flawed membership check that evaluates only the RoomExists field while ignoring IsInRoom, HasBeenInRoom, and Membership fields. Attackers who have left a room can call the rooms context API endpoint for a previously permitted event and receive unfiltered current room state that the /messages and /sync endpoints correctly withhold.
AnalysisAI
Post-leave room state disclosure in Dendrite through 0.13.8 allows authenticated local users to retrieve unfiltered current room state from rooms they have previously exited. The syncapi /context endpoint in syncapi/routing/context.go performs an incomplete membership check - evaluating only the RoomExists field while ignoring IsInRoom, HasBeenInRoom, and Membership - effectively treating departed users as current members for this endpoint alone. A publicly available proof-of-concept exists per VulnCheck and the geo-chen research disclosure; no active exploitation has been confirmed via CISA KEV at time of analysis.
Technical ContextAI
Dendrite (CPE: cpe:2.3:a:matrix-org:dendrite:*:*:*:*:*:*:*:*) is the Go-based Matrix homeserver implementation maintained by matrix-org, serving as an alternative to the dominant Synapse server. The Matrix Client-Server API exposes a /rooms/{roomId}/context/{eventId} endpoint, implemented in syncapi/routing/context.go, which provides surrounding event context for a given event ID. CWE-863 (Incorrect Authorization) describes a scenario where an authorization check is present but logically incomplete - precisely the defect here. The membership query returns a struct with multiple fields (RoomExists, IsInRoom, HasBeenInRoom, Membership), but only RoomExists is evaluated before serving the response. Because a room continues to exist after a user departs, this field resolves to true and the gate passes, returning current post-leave state. The /messages and /sync endpoints implement the full multi-field check correctly, making this a localized regression in the context routing handler alone.
RemediationAI
No vendor-released patched version is confirmed in the available reference data; administrators should monitor the matrix-org/dendrite GitHub repository for a tagged release addressing this issue. As an interim compensating control, operators can restrict access to the /rooms/{roomId}/context/{eventId} endpoint at the reverse proxy layer (e.g., nginx or Caddy) by validating session membership server-side before proxying - note this requires custom middleware and may break Matrix clients that rely on the context endpoint for timeline navigation. Alternatively, if the /context endpoint is not actively used by clients in the deployment, it can be blocked entirely at the reverse proxy; this trades client functionality for exposure reduction. The VulnCheck advisory (https://www.vulncheck.com/advisories/dendrite-syncapi-context-endpoint-post-leave-state-exposure) and the researcher disclosure (https://github.com/geo-chen/oss/blob/main/dendrite.md#finding-3-context-returns-current-room-state-to-non-members-and-left-users-history-visibility-bypass) should be monitored for patch availability updates.
Improper authorization in Dendrite (the Go-based Matrix homeserver) through version 0.13.8 lets any authenticated local
Server-side request forgery in Dendrite through 0.13.8 allows unauthenticated remote attackers to weaponize the server a
gomatrixserverlib is a Go library for matrix protocol federation. Rated high severity (CVSS 8.8), this vulnerability is
Dendrite is a Matrix homeserver written in Go. Rated medium severity (CVSS 5.3), this vulnerability is remotely exploita
Same weakness CWE-863 – Incorrect Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-45195
GHSA-xq7h-2f2w-f2xq