Unseal and bootstrap handshake lack brute-force protection #60
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: HIGH
Attack vector: network-only
Impact
Allows repeated password guessing against the unseal/bootstrap flow until the correct password is found or the service is exhausted.
Description
An authenticated user agent can call the unseal path an unbounded number of times with different guessed passwords. The only cost per attempt is the Argon2id computation; there is no retry counter, backoff, delay, or lockout.
Example flow
Mitigation
Add rate limits, retry counters, exponential backoff, temporary lockout, and monitoring for repeated failures.