fix: security audit — resolve critical vulnerabilities and harden inf… - #63
fix: security audit — resolve critical vulnerabilities and harden inf…#63dumepaepp wants to merge 2 commits into
Conversation
…rastructure Critical fixes: - Fix role self-escalation: users could register as admin via POST body - Fix Sequelize syntax bug (MongoDB syntax used — queries silently broken) - Enforce JWT_SECRET validation at startup (reject weak/missing secrets) - Fix XSS sanitization bypass (only stripped <script> tags, not img/svg/event handlers) High fixes: - Fix IP whitelist memory leak (mutable array pushed on every request) - Add JWT token management to frontend (auto-refresh, 401 handling) - Fix graceful shutdown to close MongoDB, RabbitMQ, Redis connections - Remove duplicate signal handlers from app.js (lifecycle in server.js) - Add RabbitMQ reconnection with exponential backoff and poison pill handling Medium fixes: - Remove double module.exports in auth middleware - Dockerfiles: npm ci, non-root user, healthchecks - docker-compose: env-var credentials with RequiredVar guards - Add .gitignore, .env.example, frontend/nginx.conf - Add comprehensive REVIEW.md with remaining recommendations
|
| GitGuardian id | GitGuardian status | Secret | Commit | Filename | |
|---|---|---|---|---|---|
| - | - | Generic Password | 1e055fa | docker-compose.yml | View secret |
🛠 Guidelines to remediate hardcoded secrets
- Understand the implications of revoking this secret by investigating where it is used in your code.
- Replace and store your secret safely. Learn here the best practices.
- Revoke and rotate this secret.
- If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.
To avoid such incidents in the future consider
- following these best practices for managing and storing secrets including API keys and other credentials
- install secret detection on pre-commit to catch secret before it leaves your machine and ease remediation.
🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.
The PostgreSQL init.sql was missing several columns that the Sequelize User model defines (mfaTempSecret, mfaBackupCodes, mfaRecoveryCode, knownIPs, knownDevices, typicalLoginHours, loginSessions, permissions). This caused 'column does not exist' errors on registration.
…rastructure
Critical fixes:
High fixes:
Medium fixes: