Status: Patched
This vulnerability has been verified as resolved and deployed.
Demoted participants retain moderator recording and dial-out permissions
Summary
Temporary promotion overwrote JWT feature restrictions and demotion did not restore them
A token-authenticated participant whose JWT disabled recording, livestreaming, transcription, and outbound calls could retain those capabilities after a legitimate moderator temporarily promoted and then demoted them.
Root cause. process_set_affiliation() copied the granting moderator's jitsi_meet_context_features table into the promoted participant's session. The demotion branch cleared the table only for sessions without auth_token, so token-authenticated sessions retained stale grants that downstream Jibri and Rayo filters treated as authoritative.
Remediation evidence. Jitsi opened PR #17802 the day after the disclosure and merged it on 9 September 2026. The patch restores the participant's original session features when owner status is revoked and adds regression coverage for the role transition.
CVSS Score
Vulnerability Location
Source-to-Sink Analysis
A valid participant token installs explicit feature restrictions on the authenticated session.
Temporary promotion replaces those restrictions with the granting owner's enabled feature table.
After demotion, the stale table remains and the authoritative IQ filter permits recording or livestream operations that the JWT denied.
Impact Analysis
Critical Impact
A demoted participant can control same-meeting recording, livestreaming, transcription, or outbound SIP operations. This can expose meeting media, alter recording state, terminate an active stream, or incur telephony usage depending on configured backends.
Attack Surface
Token-protected Jitsi conferences using the Prosody moderation bridge and Jibri or Jigasi feature filters.
Preconditions
The attacker is an authenticated participant with restricted JWT features. A legitimate owner must temporarily promote the participant, and the selected Jibri/Jigasi backend must be deployed.
Proof of Concept
Environment Setup
Use an isolated token-authenticated Jitsi deployment with Jibri or Jigasi enabled and two accounts: an owner and a restricted participant.
Target Configuration
Give the participant a valid room-scoped JWT whose context.features values explicitly disable recording, livestreaming, transcription, and outbound calling.
Exploit Delivery
Promote the participant to owner, revoke that affiliation, then send the standard Jibri start/stop or Rayo dial IQ from the participant's existing session.
Outcome
PR #17802 restores the prior feature table on demotion, so the same IQ is denied after the participant loses owner status.
Expected Response: On the vulnerable revision, Prosody forwards the IQ instead of returning the expected not-allowed response.
Run this level of analysis on your repo.
Winfunc traces source-to-sink paths, validates exploitability, and gives your team patch-ready remediation.
