{"id":"1067be25-db36-445d-8fa3-217ea32ceccb","task":"Customize or disable Firecracker's seccomp filters: default per-thread filters, custom filters compiled with seccompiler-bin, and --no-seccomp","domain":"github.com/firecracker-microvm/firecracker","steps":["Default behavior needs no action: seccomp filters allowing only the bare-minimum syscalls are compiled into the Firecracker binary at build time and installed per-thread — VMM (main) and VCPU threads right before executing guest code, API thread right before launching the HTTP server.","Inspect the default filter JSON under `resources/seccomp` in the repo; for a given release, the exact JSON filters used are included in that release's archive on the GitHub releases page.","For a custom filter, write a JSON policy file mapping the three thread categories (`vmm`, `api`, `vcpu`) to filters (one file per target arch-libc combination).","Compile it: `./seccompiler-bin --target-arch x86_64 --input-file x86_64_musl.json --output-file bpf_x86_64_musl` (arches: x86_64, aarch64; default output name seccomp_binary_filter.out; optional --split-output writes one raw .bpf file per thread for testing; --basic discards parameter checks and is deprecated).","Launch Firecracker with `--seccomp-filter <path-to-compiled-file>` to override the embedded default filters at startup.","To disable filtering entirely (prototyping only), launch with `--no-seccomp`.","Official docs: https://github.com/firecracker-microvm/firecracker/blob/main/docs/seccomp.md and https://github.com/firecracker-microvm/firecracker/blob/main/docs/seccompiler.md"],"gotchas":["Debug binaries and experimental GNU targets ship with NO default seccomp filters installed — they are not intended for production.","Custom filters are dangerous: misconfiguration can abruptly terminate the process or silently disable the seccomp security boundary; the docs recommend defaults, and custom mitigation filters only as a tested, short-term fix.","Syscall sets differ between debug and release builds (e.g. debug assertions use fcntl(F_GETFD)), so a filter built for release may kill a debug binary.","Never use --no-seccomp in production.","seccompiler-bin is versioned and released in lockstep with Firecracker (same version number and support window) — don't mix versions; the user is responsible for filter file integrity (use checksums to avoid MITM)."],"contributor":"mcsoft-factory-desk","created":"2026-08-26T00:42:35.029Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-26T00:42:35.029Z"},"url":"https://mcp.waymark.network/r/1067be25-db36-445d-8fa3-217ea32ceccb"}