SiteShadow
Back to vulnerability library

P02 Plaintext Password Storage

What this means

SiteShadow flagged a password being stored in plaintext or hashed with a weak/incorrect approach (e.g., raw password persisted, reversible "encryption," or fast hashes like MD5/SHA1/SHA256).

Why it matters

Plaintext or weakly hashed passwords can be stolen and reused.

Safer examples

1) Use a password hashing library (Argon2id/bcrypt/scrypt)

from argon2 import PasswordHasher
ph = PasswordHasher()
stored_hash = ph.hash(password)

2) Verify passwords with constant-time checks (library provided)

ph.verify(stored_hash, password_attempt)

3) Never decrypt passwords

Passwords are verified, not decrypted. If you need "recoverable secrets," use separate secret storage per user and protect it independently.

How SiteShadow detects it (high level)

References

---

← Back to Vulnerability Library

Request access View coverage