How long a sign-in takes to fail tells anyone whether the name is an account #138
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found by the load tests (#133) on 2026-10-05: a wrong password for an account's name was refused a median 31ms later than one for a name that is not an account. login answers the same words either way, as its comment intends, but only checks a password when the name has a hash, so the time alone says which names are accounts here.
Fixed in
f1d3604: a name with no account, or no password, is checked against a fixed decoy hash. The load test's median gap between a known and an unknown name went from 31ms to 0.2ms; in production a made-up name is now refused in 70ms, as long as a real check. Deployed 2026-10-05 (0.10.1-dev).