Bootstrap token registration lacks proof of possession #62

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

Info

Severity: MEDIUM
Attack vector: local malicious process

Impact

Allows anyone who reads the bootstrap token to immediately register and authenticate as a user agent without first proving possession of the claimed key.

Description

Whoever presents the bootstrap token is immediately registered and marked authenticated. There is no separate challenge-response round-trip proving that the caller actually controls the claimed user-agent key. This makes a token disclosure directly equivalent to full user-agent authority.

Example flow

  1. Read or steal the bootstrap token.
  2. Present it to the server once.
  3. Register an attacker-controlled user-agent key.
  4. Receive authenticated user-agent status without a separate possession proof.

Mitigation

Require a challenge-response exchange after token presentation before completing registration and authentication.

# Info **Severity**: **MEDIUM** Attack vector: local malicious process ## Impact Allows anyone who reads the bootstrap token to immediately register and authenticate as a user agent without first proving possession of the claimed key. ## Description Whoever presents the bootstrap token is immediately registered and marked authenticated. There is no separate challenge-response round-trip proving that the caller actually controls the claimed user-agent key. This makes a token disclosure directly equivalent to full user-agent authority. ## Example flow 1. Read or steal the bootstrap token. 2. Present it to the server once. 3. Register an attacker-controlled user-agent key. 4. Receive authenticated user-agent status without a separate possession proof. ## Mitigation Require a challenge-response exchange after token presentation before completing registration and authentication.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MarketTakers/arbiter#62