Summary
Severity: Medium
When a Server registers only on_frame_cb but not on_play_cb, any network peer that completes RTMP handshake and connect can issue createStream + play and receive relayed media (including init-cache replay) without authorization.
Attacker
Any unauthenticated network client.
Controlled input
RTMP AMF play command after connect.
Attack path
read_messages → handle_command_message → play handler in src/session/conn.rs. The guard that rejects play when only on_publish_cb/on_media_cb are configured did not include on_frame_cb, so play proceeded and relay_enabled was set.
Impact
Unauthorized playback and bandwidth consumption from stream cache / live relay.
Location
src/session/conn.rs
Remediation
Treat on_frame_cb like on_media_cb: reject play when on_play_cb is unset but on_frame_cb is configured.
Summary
Severity: Medium
When a
Serverregisters onlyon_frame_cbbut noton_play_cb, any network peer that completes RTMP handshake andconnectcan issuecreateStream+playand receive relayed media (including init-cache replay) without authorization.Attacker
Any unauthenticated network client.
Controlled input
RTMP AMF
playcommand afterconnect.Attack path
read_messages→handle_command_message→playhandler insrc/session/conn.rs. The guard that rejects play when onlyon_publish_cb/on_media_cbare configured did not includeon_frame_cb, so play proceeded andrelay_enabledwas set.Impact
Unauthorized playback and bandwidth consumption from stream cache / live relay.
Location
src/session/conn.rsRemediation
Treat
on_frame_cblikeon_media_cb: rejectplaywhenon_play_cbis unset buton_frame_cbis configured.