feat(docker): switch seccomp profile to deny-by-default#1286
Conversation
Change defaultAction from SCMP_ACT_ALLOW to SCMP_ACT_ERRNO with an explicit allowlist of ~340 syscalls needed by development tools (git, npm, curl, node, python, java, rust, etc.). Dangerous syscalls like ptrace, kexec_load, reboot, init_module, pivot_root, and umount remain explicitly blocked as defense-in-depth. Add seccomp-profile.test.ts with 12 validation tests ensuring the profile structure, deny-by-default action, essential syscall coverage, and no duplicate entries. Fixes #311 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
✅ Coverage Check PassedOverall Coverage
📁 Per-file Coverage Changes (2 files)
✨ New Files (1 files)
Coverage comparison generated by |
There was a problem hiding this comment.
Pull request overview
Switches the agent container's seccomp profile from allow-by-default (SCMP_ACT_ALLOW) to deny-by-default (SCMP_ACT_ERRNO) with an explicit allowlist of ~340 syscalls, and adds validation tests.
Changes:
- Changed
defaultActiontoSCMP_ACT_ERRNOand added a comprehensive allowlist of syscalls needed by development tools - Retained explicit deny rules for dangerous syscalls as defense-in-depth, with updated comments
- Added 12 validation tests for profile structure, essential syscalls, and no-duplicate enforcement
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| containers/agent/seccomp-profile.json | Switch to deny-by-default with ~340 allowed syscalls and updated comments on deny rules |
| src/seccomp-profile.test.ts | New test suite validating profile structure, essential syscalls, deny rules, and no duplicates |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Smoke Test Results✅ GitHub MCP: Last 2 merged PRs: Overall: PASS
|
|
Smoke test results
|
|
Smoke test results for ✅ GitHub MCP — Last 2 merged PRs: Overall: PASS
|
Chroot Version Comparison Results
Result: ❌ Not all versions matched — Python and Node.js versions differ between host and chroot environments.
|
This comment has been minimized.
This comment has been minimized.
Removes -f flag to avoid exit code 22 on GitHub API 403 rate limits. The test only needs to generate Squid logs, not verify HTTP 200. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Smoke Test Results — Copilot Engine
Overall: PASS PR author:
|
Smoke Test Results
Overall: PASS
|
|
Smoke test: FAIL
|
Chroot Version Comparison Results
Result: Not all runtimes matched — Go matches, but Python and Node.js versions differ between host and chroot.
|
🏗️ Build Test Suite Results
Overall: 8/8 ecosystems passed — ✅ PASS
|
Summary
SCMP_ACT_ALLOW(allow-by-default) toSCMP_ACT_ERRNO(deny-by-default) with an explicit allowlist of ~340 syscallsTest plan
Fixes #311
🤖 Generated with Claude Code