Skip to content

v0.2.1 - security and reliability hardening

Choose a tag to compare

@swayyaam swayyaam released this 23 Aug 21:09
· 134 commits to main since this release

Security fixes (see CHANGELOG.md for impact and operator action per item):

  • frozen scoreboard leaked via getTeam/getUser (+ fail-safe freeze visibility)
  • unauthenticated WebSocket denial of service (connection/handshake caps)
  • instance extend after the event ended
  • session revocation evadable via reverse-index drift
  • registration blocked for venues on one NAT (per-IP sign-up limit, GitHub issue #1)
  • registration/login burst could OOM the host via unbounded argon2id hashing
    (concurrency-capped semaphore + 503/Retry-After load-shed, GitHub issue #3)
  • per-team bridge reclaimed after upgrade (network garbage collection)
  • per-instance flags exposed via the admin submissions view (+ historical redaction, migration 0004)

Also: reliability fixes (reconcile clock skew, scheduler lock scope and port reaper,
graceful shutdown, WS/REST scoreboard consistency) and a large test-coverage expansion.

Operator action required on upgrade: the per-instance flag redaction (migration 0004,
runs on boot) and the WebSocket ulimit guidance. See the CHANGELOG "Security" and
"Upgrade notes" sections.