Secret leak: recorder start error response includes full Docker create payload (S3 keys, stream keys) #105

Closed
opened 2026-05-26 18:18:40 -04:00 by zgaetano · 1 comment
Owner

Fixed in 04ce096. POST /recorders/:id/start no longer echoes createRes.data / startRes.data / remote sidecar response back to the client — full payload (with env vars) goes to the server log; the response carries a short, generic message.

Fixed in 04ce096. `POST /recorders/:id/start` no longer echoes `createRes.data` / `startRes.data` / remote sidecar response back to the client — full payload (with env vars) goes to the server log; the response carries a short, generic message.
Author
Owner

Fix Plan — #105 Secret leak in recorder start error response

Root cause: recorders.js:451 returns details: createRes.data (Docker API error echoes full request body including containerConfig.Env with S3_SECRET_KEY, STREAM_KEY, AMPP creds).

**Fix (2 steps):

  1. Scrub error response — never forward raw internal error data:
// before:
return res.status(500).json({ error: "Failed to create container", details: createRes.data });

// after:
console.error("Docker create failed:", createRes.data);
return res.status(500).json({ error: "Failed to create container" });
  1. Audit all details: fields — grep every route for details: responding with internal data. Replace with server-side logging + generic client message.

Files: src/routes/recorders.js:349-451, all route files
Effort: ~1h
**Priority: P0 — security

## Fix Plan — #105 Secret leak in recorder start error response **Root cause:** `recorders.js:451` returns `details: createRes.data` (Docker API error echoes full request body including `containerConfig.Env` with `S3_SECRET_KEY`, `STREAM_KEY`, AMPP creds). **Fix (2 steps): 1. **Scrub error response** — never forward raw internal error data: ```js // before: return res.status(500).json({ error: "Failed to create container", details: createRes.data }); // after: console.error("Docker create failed:", createRes.data); return res.status(500).json({ error: "Failed to create container" }); ``` 2. **Audit all `details:` fields** — grep every route for `details:` responding with internal data. Replace with server-side logging + generic client message. **Files:** `src/routes/recorders.js:349-451`, all route files **Effort:** ~1h **Priority: P0 — security
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: WildDragonLLC/dragonflight#105
No description provided.