Skip to content

Audit: a gateway 502 on a relay broadcast releases the submission guard (Sherlock 159) #581

Closed

Description

@derek-flossman

Tracking issue for Sherlock #159 (Low/Info), targeted at v0.10.6.

The privacy paymaster client read every non-2xx status as a refusal from the relay. Through the STRK20 gateway, a 502 means the gateway's own 25s upstream deadline expired, five seconds inside the wallet's 30s one. A relay that forwarded paymaster_executeTransaction but replied slowly therefore released the maturity submitting guard, and the next private action could broadcast a second time.

Fix: on a broadcast, treat a 5xx as an unknown outcome and keep a 4xx as a refusal. Set the wallet deadline below the gateway's. Have the gateway answer 504 on an upstream timeout and pass a relay's own 4xx through.

Activity

  1. derek-flossman commented on Oct 12, 2026

    @derek-flossman
    CollaboratorAuthor

    Fixed on release/v0.10.6 by #636 (merge commit 7eb9028).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions