F-2026-0003·design-flaw

Server can control both seeds when client seed is omitted, weakening provably-fair guarantees

Fixedpentesttypescriptbackend
TL;DR

The provably-fair system allowed the server to generate both serverSeed and clientSeed when the client seed was not provided, enabling a biased operator to cherry-pick seed pairs that produce house-favorable outcomes while still passing public verification.

Severity
HIGH
Impact
HIGH
Likelihood
LOW
Method
MManual review
CAT.
Complexity
LOW
Exploitability
MEDIUM
02Section · Description

Description

Provably-fair systems depend on the user supplying their own clientSeed so that the random outcome can be reconstructed from (serverSeed, clientSeed, nonce) and verified independently.

In the audited implementation, when clientSeed was not provided, the server generated both serverSeed and clientSeed. A biased operator could iterate seed pairs offline and select pairs that produce house-favorable outcomes while still producing a publicly verifiable game record.

03Section · Impact

Impact

The "provably fair" guarantee is reduced to a probabilistic one: verifications still pass, but the entropy is fully controlled by the server. Long-tail outcomes can be steered without detection.

04Section · Recommendation

Recommendation

Require a user-supplied clientSeed at session initialization, or derive it deterministically from a value the user controls (wallet signature, on-chain commitment) rather than letting the server pick it. Reject session start if the client seed is missing or trivial, and surface the seed selection in the verification UI.

Fair Casino: Fixed. Zealynx: Verified.

Status
Fixed
F-2026-0003