An inconsistency has been identified in the stream event emission system where streams created with zero rate per second (RPS) are effectively paused but do not emit the appropriate pause event. This creates a discrepancy between the stream's effective state and the emitted events.
The vulnerability occurs when streams are created with zero RPS. While the system functionally treats these streams as paused, it fails to emit the corresponding pause event. This creates an inconsistency with other pause scenarios:
Stream Creation with Zero RPS (_create()
):
Explicit Pause (_pause()
):
Stream State Check in _restart()
:
Event Emission Inconsistency:
Creating a stream with RPS = 0: Only emits CreateFlowStream
Pausing a stream explicitly: Emits PauseFlowStream
Both scenarios result in the same effective state (paused)
State-Event Mismatch:
System treats zero RPS as paused state
Creation with zero RPS doesn't emit events matching this state
Creates discrepancy between state and event history
Off-chain systems tracking pause events will miss initially paused streams
Inconsistent event history for effectively identical state
Systems relying on pause events for state management will fail
Monitoring systems may report incorrect stream states
Manual code review
Add pause event emission for zero RPS creation:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.