Skip to main content

Dendrite CVE-2026-63097

| EUVDEUVD-2026-45195 MEDIUM
Incorrect Authorization (CWE-863)
2026-07-17 VulnCheck GHSA-xq7h-2f2w-f2xq
5.3
CVSS 4.0 · Vendor: VulnCheck
Share

Severity by source

Vendor (VulnCheck) PRIMARY
5.3 MEDIUM
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
vuln.today AI
4.3 MEDIUM

Requires authenticated account (PR:L) over network; low confidentiality impact from room state disclosure only; no integrity or availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

2
Analysis Generated
Jul 17, 2026 - 16:19 vuln.today
CVE Published
Jul 17, 2026 - 15:32 cve.org
MEDIUM 5.3

DescriptionCVE.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.

Share

CVE-2026-63097 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy