1.7 KiB
1.7 KiB
Security Review
Checked Areas
- Shell execution: browser auto-open is gated by
AUTO_OPEN_BROWSERand defaults to false. - Secrets:
.envremains ignored;.env.examplecontains no real keys. - External network calls: source fetches use timeout/retry diagnostics and expose degraded state.
- Manual actions:
/api/sweepand/api/actionare gated byTERMINAL_ACTIONS_ENABLEDand local-only orSWEEP_TOKENauthorization. - File writes: runtime writes are limited to
runs/. - HTML injection: dashboard data is JSON-injected only by the CLI path; server mode serves data through API/SSE.
Terminal Actions
TERMINAL_ACTIONS_ENABLED=trueenables dashboard-triggeredstatus,sweep, andbriefactions throughPOST /api/action.- If
SWEEP_TOKENis set, callers must send the token throughx-sweep-token,Authorization: Bearer ..., or thetokenrequest body field. - If
SWEEP_TOKENis empty, actions are accepted only from local loopback addresses. - For private Dockge/LAN deployments, this is intended to make the terminal operable from the browser.
- For Pangolin or other internet-exposed deployments, set
SWEEP_TOKENorTERMINAL_ACTIONS_ENABLED=falseuntil the public reverse-proxy hardening issue is completed.
Residual Risk
- External feeds can return malformed, stale, or adversarial content. UI rendering should continue to sanitize titles and URLs.
- LLM outputs are advisory only and must not be treated as financial advice.
node:sqliteavailability depends on the Node 22 build; when unavailable the memory database degrades to a no-op placeholder.- Browser-stored sweep tokens are acceptable for a trusted home-server UI, but should not be treated as a strong auth boundary on a public endpoint.