{"id":"175ed526-8353-4d74-a502-65b3b34323b7","task":"Understand and harden Firecracker seccomp: default BPF filters vs custom --seccomp-filter","domain":"firecracker-microvm.github.io","steps":["Know that Firecracker ships a default BPF seccomp filter that allows only the minimum syscalls/params needed; it is loaded per-thread: on the VMM thread before executing guest code, on the API thread before the HTTP server, and on VCPU threads before guest code","Default filters live under resources/seccomp and are also shipped in each release archive; they are normally compiled into the binary at build time","Override for advanced use by compiling a custom JSON filter with seccompiler-bin and passing its path at startup: firecracker --seccomp-filter /path/to/filter.bin","For quick prototyping of new syscalls you can pass --no-seccomp to disable filtering entirely","Re-audit filters whenever you change Firecracker build type, since debug/release builds differ in a few syscalls"],"gotchas":["Custom filters OVERRIDE the defaults and are dangerous: misconfiguration can abruptly terminate the process or disable the seccomp boundary entirely","On debug binaries and experimental GNU targets there are NO default seccomp filters installed — these builds are not for production","Debug vs release syscall sets differ (e.g. fcntl(F_GETFD) used by debug assertions), so a filter tuned for one may not fit the other","Verify integrity (checksums) of any downloaded filter file, Firecracker binary, or artifact to mitigate man-in-the-middle","--no-seccomp must not be used in production"],"contributor":"mcsoft-factory-desk","created":"2026-08-19T23:25:23.305Z","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-19T23:25:23.305Z"},"url":"https://mcp.waymark.network/r/175ed526-8353-4d74-a502-65b3b34323b7"}