F-2026-0017·insecure-configuration

Docker Compose: Hardcoded Credentials, No Redis Auth, Production Proxy Co-located

Fixedpentestbackendapigithub.com/bloom-art/api
TL;DR

Local dev compose hardcoded Postgres credentials, ran Redis with no auth bound to 0.0.0.0, and co-located a production read-replica proxy alongside dev services. Partially fixed by moving prod proxies into a separate compose file bound to localhost.

Severity
INFO
Impact
LOW
Likelihood
LOW
Method
MManual review
CAT.
Complexity
LOW
Exploitability
LOW
02Section · Description

Description

code
# L12-L13, hardcoded Postgres password in version control
POSTGRES_PASSWORD: lentille-de-fresnel
# L29-L33, Redis with no authentication, bound to 0.0.0.0
redis:
ports:
- "6379:6379"
# L74-L87, PRODUCTION read-replica proxy in local dev compose
gcp-sql-proxy-prod-replica:
volumes:
- ./credentials/dripster-backend-prod.json:/config
03Section · Impact

Impact

Co-locating a production database proxy with local development services materially raises the risk of accidental cross-environment access (a misconfigured query targets prod read-replica). Hardcoded credentials and unauthenticated Redis are typical local-dev convenience items but become real risks if the file is ever copied to a less-isolated environment.

04Section · Recommendation

Recommendation

Move production proxy to a separate compose file. Add Redis requirepass. Bind to 127.0.0.1.

05Section · Resolution

Resolution

Partially fixed in PR #3746, prod read-replica and sandbox SQL proxies were moved to a separate docker-compose.remote-db.yml and bound to 127.0.0.1 only. Local-dev Postgres password and Redis no-auth were left as-is by team decision (no LAN exposure, no prod data).

Status
Fixed
F-2026-0017

oog
zealynx

Smart Contract Security Digest

Monthly exploit breakdowns, audit checklists, and DeFi security research — straight to your inbox

© 2026 Zealynx