- Sources: Ahle post, HN submission
- Summary: Thomas Ahle published an audit on his own site reporting arbitrarily many inputs that collide under every seed, constructed without knowing the key, for gxhash, MUM, mir, mx3, fasthash, pengyhash, MuseAir v0.3, a5hash-128, nmhash32x, Abseil Hash, CityHash64, FarmHash64 and MurmurHash3. The post states he disclosed upstream before publishing, links maintainer replies for xxHash, komihash, MuseAir and foldhash, and reports a maintainer consensus that only true multicollision attacks are worth fixing. Two limits are stated in the post itself and a reader would not infer either. The analysis itself was carried out with a model, which the author says found the bad inputs, and he states he was able to find mistakes in some results and verify others in Lean, warns the write-up contains errors, and says he trusts only the concrete examples found and measured plus the Lean-checked bounds. The bounds are on equality of the full 64-bit output, and the post is explicit that a full-output bound does not automatically carry to a bucket index, so the practical hash-table claim is narrower than the headline. Version scope is given per entry rather than left open: the appendix states each entry gives the exact code version alongside the message bytes and the derivation, and the versions named across the post include MUM v3, mx3 v3, pengyhash v0.3, nmhash32x v2, MuseAir v0.3, MurmurHash3 x64_128, XXH3-64 0.8.3, wyhash final v4.3, rapidhash v1 and v3, and foldhash-fast and foldhash-quality 0.2.0. a5hash-128 names an output width rather than a version, because the post plots a5hash-64 beside it.
- Why it matters: The named hashes sit under hash tables that take attacker-controlled keys, and a collision family built without knowledge of the seed leaves seed randomization as a defence that does not hold.
- Follow-up: Track whether any of the 13 named hashes ships a fix or a documented adversarial-input caveat.
send feedback on this story