-
Notifications
You must be signed in to change notification settings - Fork 2
feat: mount host / as readonly and add isolate.sh script #394
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: Mossaka <5447827+Mossaka@users.noreply.github.com>
Co-authored-by: Mossaka <5447827+Mossaka@users.noreply.github.com>
|
🎬 THE END — Smoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨ |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
@copilot how to force that every command running in this container would be wrapped with ./isolate.sh? |
|
| Metric | Base | PR | Delta |
|---|---|---|---|
| Lines | 77.88% | 77.63% | 📉 -0.25% |
| Statements | 77.94% | 77.71% | 📉 -0.23% |
| Functions | 77.29% | 77.54% | 📈 +0.25% |
| Branches | 71.00% | 70.39% | 📉 -0.61% |
📁 Per-file Coverage Changes (2 files)
| File | Lines (Before → After) | Statements (Before → After) |
|---|---|---|
src/docker-manager.ts |
79.1% → 79.3% (+0.19%) | 78.4% → 78.6% (+0.19%) |
src/cli.ts |
35.5% → 35.9% (+0.38%) | 35.5% → 36.2% (+0.62%) |
Coverage comparison generated by scripts/ci/compare-coverage.ts
To force all commands through exec capsh --drop=cap_net_admin -- -c "exec gosu awfuser /usr/local/bin/isolate.sh $(printf '%q ' "$@")"This would make Would you like me to implement this change? |
Claude Smoke Test ResultsLast 2 Merged PRs:
Test Results:
Status: PASS
|
|
Smoke Test Results - Copilot ✅ GitHub MCP: Retrieved last 2 merged PRs (#388, #387) Status: PASS 🎉 cc: @Copilot @Mossaka
|
Security Review: Critical Concerns with
|
|
@copilot yes implement: exec capsh --drop=cap_net_admin -- -c "exec gosu awfuser /usr/local/bin/isolate.sh |
Co-authored-by: Mossaka <5447827+Mossaka@users.noreply.github.com>
Implemented in commit 5c12927. All commands in the container now run through |
|
@copilot modify the firewall so that even if custom mounts are added, the /host is still mounted as ro |
Co-authored-by: Mossaka <5447827+Mossaka@users.noreply.github.com>
|
🎬 THE END — Smoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨ |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
Smoke Test Results (Claude)
✅ GitHub MCP: PASS Overall Status: PASS
|
Smoke Test Results ✅ PASSLast 2 Merged PRs:
Test Results:
cc @Copilot @Mossaka
|
🚨 Security Review: Critical Concerns IdentifiedI've reviewed this PR and identified significant security concerns that weaken the firewall's security posture. While the read-only host mount is an improvement, the
|
|
Closing PR to reduce backlog. Created issue #420 to track this work. Will fix it later. |
Mount host filesystem as read-only for improved security. Add
isolate.shutility to run host binaries via chroot when not available in container PATH.Changes
/:/host:rwto/:/host:roindocker-manager.ts. The/:/host:romount is now always included regardless of whether custom volume mounts are specified, ensuring chroot functionality is always available./usr/local/bin/isolate.sh/hostwhen binary not found in container PATH/hostexists before chroot attemptentrypoint.shto wrap all user commands withisolate.sh, making it the execution gateway for all commands in the containerUsage
All commands in the container now automatically run through
isolate.sh. If a binary exists in the container PATH, it runs directly. Otherwise, it chroots into/hostand executes there.Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.