[SECURITY] Command Injection in HandleViewLogsGET via container name#114
[SECURITY] Command Injection in HandleViewLogsGET via container name#114arumes31 wants to merge 2 commits into
Conversation
- Hardened HandleViewLogsGET by switching to exec.CommandContext with request context. - Hardened HandleForceRestartPOST by switching to exec.CommandContext with a 30s timeout context. - Added TestHandleViewLogsGET_Security to internal/handlers/security_test.go to verify container name validation. - Ensured all handlers are using context-aware command execution for better lifecycle management and security. Co-authored-by: arumes31 <114224498+arumes31@users.noreply.github.com>
|
π Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a π emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the βοΈ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
β¨ Finishing Touchesπ§ͺ Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Add the "--" end-of-options separator to the `docker logs` invocation so a validated container name can never be interpreted as a docker flag (e.g. -v, --since), and annotate the call with `#nosec G204 G702` plus a written justification. Also surface the previously-discarded CombinedOutput error to address the G104 unhandled-error smell. Clears the gosec `test` gate for this PR (gosec G204/G702: 0 issues); build, vet, and the security tests pass locally. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
@ Maintainer review β verdict: REFACTOR (committed)Thanks for this fix β the I took this to REFACTOR and pushed one commit ( Changes in
Local verification: Note: This clears this PRs own gosec finding. The repo-wide |
This PR addresses a security vulnerability (command injection risk) in the HandleViewLogsGET handler.
Changes:
exec.Commandtoexec.CommandContextusing the request's context. This ensures that thedocker logscommand is terminated if the HTTP request is cancelled or times out.exec.CommandContextwith a dedicated 30-second timeout context for background container restarts. This prevents orphaned or hung processes.TestHandleViewLogsGET_Securitytointernal/handlers/security_test.go. This test specifically injects malicious container names and verifies that theconfig.IsValidContainerNamevalidation (which was already present but now reinforced with better execution patterns) correctly blocks and logs the attempt.contextimport tointernal/handlers/web_handlers.goand rangofmt.These changes align the web handlers with the security patterns already established in the API handlers.
PR created automatically by Jules for task 4572037813102938627 started by @arumes31