Bootstrap token registration lacks proof of possession #62

Closed
opened 2026-04-05 16:23:06 +00:00 by Skipper · 1 comment
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.
Member

The finding does not apply to the current implementation. The bootstrap token is consumed and the key registered only inside verify_solution after the challenge-response signature check passes, so key possession is already proven before registration completes.

The finding does not apply to the current implementation. The bootstrap token is consumed and the key registered only inside `verify_solution` after the challenge-response signature check passes, so key possession is already proven before registration completes.
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MarketTakers/arbiter#62