Finding
From the comprehensive security review in #71 (M3 — Medium severity).
Files: api/api.py, curator/curator.py
All Neo4j traffic (including user graph data) travels unencrypted over the Docker network.
Impact
Any traffic between services and Neo4j (graph queries, writes) is transmitted in plaintext. In a shared or cloud network environment this exposes user graph data to network-level interception.
Proposed Fix
- Enable TLS on the Neo4j Bolt connection (
encrypted=True) for any non-local deployment
- Add a
NEO4J_TLS_ENABLED env var (default false for local dev, true for production)
- Document in operator setup that TLS must be enabled in production
Notes
Not addressed in #73 (infrastructure concern — requires TLS certificate setup on the Neo4j side, not just application code).
Finding
From the comprehensive security review in #71 (M3 — Medium severity).
Files:
api/api.py,curator/curator.pyAll Neo4j traffic (including user graph data) travels unencrypted over the Docker network.
Impact
Any traffic between services and Neo4j (graph queries, writes) is transmitted in plaintext. In a shared or cloud network environment this exposes user graph data to network-level interception.
Proposed Fix
encrypted=True) for any non-local deploymentNEO4J_TLS_ENABLEDenv var (defaultfalsefor local dev,truefor production)Notes
Not addressed in #73 (infrastructure concern — requires TLS certificate setup on the Neo4j side, not just application code).