Unseal and bootstrap handshake lack brute-force protection #60

Open
opened 2026-04-05 16:23:05 +00:00 by Skipper · 0 comments
Owner

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

  1. Authenticate as a user agent.
  2. Repeatedly submit unseal requests with different password guesses.
  3. Observe that each request is processed normally with no retry limit.
  4. Continue until the correct password is found or system resources are exhausted.

Mitigation

Add rate limits, retry counters, exponential backoff, temporary lockout, and monitoring for repeated failures.

# 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 1. Authenticate as a user agent. 2. Repeatedly submit unseal requests with different password guesses. 3. Observe that each request is processed normally with no retry limit. 4. Continue until the correct password is found or system resources are exhausted. ## Mitigation Add rate limits, retry counters, exponential backoff, temporary lockout, and monitoring for repeated failures.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MarketTakers/arbiter#60