fix(security): resolve 4 Dockerfile audit findings - #838
Conversation
…tion Fixes 4 pre-existing build-gate findings from BuildKit --check audit: - pmoves-archon: rename MCP_CREDENTIALS_PATH → MCP_CONFIG_PATH (eliminates SecretsUsedInArgOrEnv false positive) - pmoves-archon-ui: add USER directive (uid 65532, non-root) - pmoves-firefly-iii: add USER www-data defense-in-depth - pmoves-llama-throughput-lab: add USER directive + nginx non-root setup Dashboard: correct runner status from "3/4 online" to actual state (all 4 offline, ai-lab-win now online after manual start). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Docker Hardening ValidationHardening Validation ReportValidated: Mon Mar 9 19:17:51 UTC 2026Services CheckedPMOVES.AI Docker Hardening Validation[INFO] Checking: pmoves/docker-compose.hardened.yml [INFO] Validating: hi-rag-gateway-v2 [INFO] Validating: extract-worker [INFO] Validating: langextract [INFO] Validating: presign [INFO] Validating: render-webhook [INFO] Validating: retrieval-eval [INFO] Validating: pdf-ingest [INFO] Validating: jellyfin-bridge [INFO] Validating: invidious-companion-proxy [INFO] Validating: ffmpeg-whisper [INFO] Validating: media-video [INFO] Validating: media-audio [INFO] Validating: hi-rag-gateway-v2-gpu [INFO] Validating: hi-rag-gateway-gpu [INFO] Validating: deepresearch [INFO] Validating: supaserch [INFO] Validating: publisher-discord [INFO] Validating: mesh-agent [INFO] Validating: nats-echo-req [INFO] Validating: nats-echo-res [INFO] Validating: publisher [INFO] Validating: analysis-echo [INFO] Validating: graph-linker [INFO] Validating: comfy-watcher [INFO] Validating: grayjay-plugin-host [INFO] Validating: agent-zero [INFO] Validating: archon [INFO] Validating: channel-monitor [INFO] Validating: pmoves-yt [INFO] Validating: notebook-sync [INFO] Validating: supabase_service_role_key [INFO] Validating: supabase_jwt_secret ====================================== |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (6)
📝 WalkthroughWalkthroughSubmodule pointers are updated for Archon and llama-throughput-lab components. Environment variable names are standardized from MCP_CREDENTIALS_PATH to MCP_CONFIG_PATH across configuration and Dockerfile documentation. Container hardening is applied via explicit USER directives. Production dashboard documentation is updated with detailed operational status, runner recovery steps, and audit findings. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Poem
✨ 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 |
- Dashboard: normalize runner status to "0/4 offline" (was contradictory) - Dashboard: clarify P2 count "15 open" as pre-triage snapshot - Dashboard: fix "3 of 4" → "4 of 4" P2 items verified - Dashboard: AB-9 blocker detail REGRESSED (was stale RESOLVED) - Dashboard: Docker Bench row reflects AB-9 regression - Dockerfiles: pin exact CVE versions (>=→==) for crawl4ai, langchain-core, ray, vllm - BuildKit migration plan: add archival banner (implemented in PR #838) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(security): validate Hi-RAG video_id against allowlist regex Add _SAFE_VID_RE.match(video_id) check on video IDs extracted from Hi-RAG search results before passing to supa_get(). Prevents query injection via crafted video_id values. Closes P2 #7. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(security): pin CVE-patched versions for archon + deepresearch Add post-install pip overrides for 4 Trivy-flagged CVEs: - archon: crawl4ai>=0.8.0 (CVE-2026-26216), langchain-core>=1.2.5 (CVE-2025-68664) - deepresearch: ray>=2.52.0 (CVE-2025-62593), vllm>=0.14.1 (CVE-2026-22778) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(security): resolve 2 CodeQL alerts in chrome extension - options.js: Replace innerHTML template literal with DOM API (textContent) to eliminate XSS vector - mock-server.js: Guard routes[key] lookup with Object.hasOwn() to prevent prototype chain access Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(audit): close 4 P2 production-blockers + refresh dashboard - P2 tracker: Mark items #1, #4, #7, #8 as FIXED with verification dates - Dashboard: Add triage sweep entry, update stale PRs to MERGED, document CodeQL and Trivy fixes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(audit): reconcile P2 tracker — close 7 stale P1 findings All 7 reported P1 submodule issues from Phase C audit (2026-02-16) verified already fixed on PMOVES.AI-Edition-Hardened branches. Added individual verification entries with evidence paths to Closed Issues table. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(audit): refresh dashboard — all P1 submodule issues resolved Update executive summary and latest changes to reflect tracker reconciliation: all 7 Phase C P1 submodule findings verified fixed on Hardened branches. Add changelog entry with evidence summary. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(tools): add living document reconciliation script Checks and updates dashboard commit SHA/date metadata and flags stale P2 tracker items whose submodules have advanced. Supports --check (CI-safe read-only), --update (write metadata), and --json output. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * build(make): add docs-reconcile Make targets and preflight integration Adds docs-reconcile, docs-reconcile-check, docs-reconcile-json targets. Integrates non-blocking docs-reconcile-check into audit-layers-static. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(skills): add /docs:reconcile skill command Provides CLI-invocable skill for living document reconciliation with check, update, and JSON modes. Cross-links audit-layers and sign-trail. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(context): add Living Document Maintenance guidance to CLAUDE.md Directs agents to run docs-reconcile after audit/security work or submodule gitlink updates. Lists the two living documents and rules. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(review): resolve 7 CodeRabbit findings across PRs #839/#840 - Dashboard: normalize runner status to "0/4 offline" (was contradictory) - Dashboard: clarify P2 count "15 open" as pre-triage snapshot - Dashboard: fix "3 of 4" → "4 of 4" P2 items verified - Dashboard: AB-9 blocker detail REGRESSED (was stale RESOLVED) - Dashboard: Docker Bench row reflects AB-9 regression - Dockerfiles: pin exact CVE versions (>=→==) for crawl4ai, langchain-core, ray, vllm - BuildKit migration plan: add archival banner (implemented in PR #838) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Shaela Bello <slbello@uncg.edu> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Summary
MCP_CREDENTIALS_PATH→MCP_CONFIG_PATHto eliminate BuildKitSecretsUsedInArgOrEnvwarning (value unchanged, only env var name)adduser) — was running as rootUSER www-datadefense-in-depth (upstream default, makes it explicit)All 4 findings were pre-existing audit items from
make build-gate-full(14/14 images buildable, 4 had audit warnings). No regressions.Test plan
make -C pmoves build-gate-full→ 14/14 PASS (0 audit failures)docker exec <container> whoami)🤖 Generated with Claude Code
Summary by CodeRabbit
Documentation
Chores