Executive brief
Manifest, a backend framework and API gateway, uses unsalted SHA3 hashing for user passwords. If an attacker gains access to the user database, they can use precomputed hash tables (rainbow tables) or brute-force attacks to crack passwords much faster than with properly salted hashes, potentially compromising user accounts across the system.
Technical details
The vulnerability is a use of weak cryptographic hashing (CWE-759): user passwords are hashed with SHA3 but without a unique salt per user. This results in deterministic hashes—identical passwords produce identical hashes across users. The vulnerable code directly hashes the password without salt: `newUser.password = SHA3(newUser.password).toString()`. An attacker with database access can exploit this by comparing hashes to identify users with identical passwords, and then use offline attacks (precomputed rainbow tables or brute-force) to recover plaintext passwords. The fix is available in version 4.9.2 and later, which presumably implements proper salted password hashing.
Affected products
- mnfst Manifest < 4.9.2
Timeline
- 2025-02-28: disclosed
- 2025-04-09: patched: Fixed in version 4.9.2