Soundboard clips are published to peers even while the local mic is muted #13

Closed
opened 2026-09-12 02:13:03 -04:00 by jared · 0 comments
Owner

Severity: medium · Type: ux · Confidence: high

Location: src/lotus/lotusAudioInject.ts:186-203

Problem

The clip is published as an independent Track.Source.Unknown track and is completely decoupled from the mic publication's mute state. A user who is muted (or in a push-to-talk idle state) and clicks a soundboard button still transmits audio into the call under their own identity. Nothing in the handler consults localParticipant.isMicrophoneEnabled or any mute state. This is a genuine surprise for the "I am muted, nothing I do makes noise" mental model, and it is also the one path that can emit audio from a user who has never granted mic permission.

How to trigger

Mute yourself in the call, click a soundboard clip in cinny. Peers hear it.

Suggested fix

Gate playInjectedClip on room.localParticipant.isMicrophoneEnabled (or have the host gate it), and if injection while muted is intended, make the cinny soundboard UI say so explicitly.


Filed from the September 2026 audit (branch lotus).

**Severity:** medium · **Type:** ux · **Confidence:** high **Location:** `src/lotus/lotusAudioInject.ts:186-203` ### Problem The clip is published as an independent `Track.Source.Unknown` track and is completely decoupled from the mic publication's mute state. A user who is muted (or in a push-to-talk idle state) and clicks a soundboard button still transmits audio into the call under their own identity. Nothing in the handler consults `localParticipant.isMicrophoneEnabled` or any mute state. This is a genuine surprise for the "I am muted, nothing I do makes noise" mental model, and it is also the one path that can emit audio from a user who has never granted mic permission. ### How to trigger Mute yourself in the call, click a soundboard clip in cinny. Peers hear it. ### Suggested fix Gate `playInjectedClip` on `room.localParticipant.isMicrophoneEnabled` (or have the host gate it), and if injection while muted is intended, make the cinny soundboard UI say so explicitly. --- _Filed from the September 2026 audit (branch `lotus`)._
jared added this to the EC fork audit 2026-09 · Medium & Low milestone 2026-09-12 02:13:03 -04:00
jared added the priority: mediumuxarea: soundboard-inject labels 2026-09-12 02:13:03 -04:00
jared self-assigned this 2026-09-12 02:13:03 -04:00
jared closed this issue 2026-09-13 01:22:56 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
2026-11-14
Dependencies

No dependencies set.

Reference: LotusGuild/element-call#13