Zombie user-agent sessions can block all new client approvals #74
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Info
Severity: MEDIUM
Attack vector: network-only
Impact
Allows a single unresponsive user-agent session to block approval of all new SDK clients until the server restarts.
Description
The client approval controller waits for responses from all currently connected user agents and has no timeout or liveness detection. A half-open or non-responsive user-agent connection can remain registered indefinitely, preventing the approval future from ever resolving.
Example flow
Mitigation
Add a timeout to the approval controller, treat timeout as denial, and implement heartbeat or keepalive handling for user-agent sessions.