Problem
Redis is deployed with zero authentication. Anyone with access to the Docker overlay network can read cached query results, inject Celery tasks, or flush all data.
File: services/superset/superset_config.py, src/container.py
Impact
- Data exfiltration (cached SQL query results accessible without authentication)
- Denial of service (
FLUSHALL)
- Celery task injection → arbitrary code execution via deserialization attacks on the Celery worker
Fix
Generate a Redis password in crypto.py using os.urandom(24), pass as Docker secret, and configure requirepass. Also disable dangerous commands:
requirepass ${REDIS_PASSWORD}
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command CONFIG ""
rename-command DEBUG ""
Update all Redis URLs in superset_config.py to include the password.
Acceptance Criteria
Problem
Redis is deployed with zero authentication. Anyone with access to the Docker overlay network can read cached query results, inject Celery tasks, or flush all data.
File:
services/superset/superset_config.py,src/container.pyImpact
FLUSHALL)Fix
Generate a Redis password in
crypto.pyusingos.urandom(24), pass as Docker secret, and configurerequirepass. Also disable dangerous commands:requirepass ${REDIS_PASSWORD} rename-command FLUSHALL "" rename-command FLUSHDB "" rename-command CONFIG "" rename-command DEBUG ""Update all Redis URLs in
superset_config.pyto include the password.Acceptance Criteria
crypto.pyusingos.urandom(24)encoded as base64redis.confcreated withrequirepassand dangerous commands renamed (FLUSHALL,FLUSHDB,CONFIG,DEBUG)redis.confwith the generated passwordsuperset_config.pyupdated to include the password