Source code Security & compliance

Plaintext credential / unhashed sensitive column

Part of the GDPR & privacy check · fix arrives as a guide

What it is

A column holds a credential or sensitive value in plaintext or in a reversible form — a password column that is not a hash, an unencrypted token, or a stored secret answer.

Why it matters

Anyone with read access to the table has the credentials, and so does anyone who obtains a backup. Because users reuse passwords, the impact of a plaintext password column reaches well beyond your application.

How to fix it

Hash passwords with bcrypt or argon2id and rehash on next login rather than forcing a reset. Encrypt tokens at rest with a key held outside the database, and drop the plaintext column once migration is complete.

Run them all on your app

Connect your repo and your live services with read-only scopes. The first scan is free, and nothing changes without your approval.