Security: Database credentials stored in plaintext#2056
Security: Database credentials stored in plaintext#2056tuanaiseo wants to merge 2 commits intohyperdxio:mainfrom
Conversation
The `Connection` model stores `password` as a plain string. `select: false` only hides it from default queries, but does not protect data at rest. A database leak or privileged read would expose raw credentials. Affected files: connection.ts, connection.ts Signed-off-by: tuanaiseo <221258316+tuanaiseo@users.noreply.github.com>
The `Connection` model stores `password` as a plain string. `select: false` only hides it from default queries, but does not protect data at rest. A database leak or privileged read would expose raw credentials. Affected files: connection.ts, connection.ts Signed-off-by: tuanaiseo <221258316+tuanaiseo@users.noreply.github.com>
|
@tuanaiseo is attempting to deploy a commit to the HyperDX Team on Vercel. A member of the Team first needs to authorize it. |
|
PR Review
|
Problem
The
Connectionmodel storespasswordas a plain string.select: falseonly hides it from default queries, but does not protect data at rest. A database leak or privileged read would expose raw credentials.Severity:
highFile:
packages/api/src/models/connection.tsSolution
Encrypt
passwordbefore persistence using an authenticated encryption scheme (e.g., AES-GCM via KMS-managed key), decrypt only when needed, and rotate existing stored secrets.Changes
packages/api/src/models/connection.ts(modified)packages/api/src/controllers/connection.ts(modified)Testing