Use this checklist before every NanoMask release. Each item must be verified and signed off before publishing release artifacts.
-
docs/threat_model.mdhas been reviewed and is current with any new features or attack surface changes. - No new trust boundaries introduced without corresponding STRIDE analysis.
- Recommended controls (RC-*) are tracked in the backlog.
- All fuzz targets compile:
zig build test(fuzz edge-case tests run as part of the standard test suite). - No new findings from fuzz edge-case tests.
- Long-duration fuzzing has been run if parsing surfaces changed (admin JSON parser, schema parser, redaction engines).
-
docker buildsucceeds with the current Dockerfile. - Container image scan shows zero critical and zero high CVEs:
trivy image ghcr.io/cpbeamer/nanomask:latest. - Image runs as non-root (
USER 65534:65534in Dockerfile). - Base image is
scratch(no OS packages, no shell).
- SBOM generated and attached to the release (see
docs/release_signing.md). - Binary signed with
minisignand signature published alongside the binary. - OCI image signed with
cosign(keyless via GitHub OIDC). -
build.zig.zondependencies unchanged, or any new dependencies reviewed for security. - Zig toolchain version matches
minimum_zig_versioninbuild.zig.zon.
- No hardcoded secrets, API keys, or credentials in source:
grep -rn "BEGIN.*PRIVATE\|sk-\|AKIA\|password\s*=" src/. - Admin API auth (
--admin-token) is enabled in all production examples and Helm defaults. - TLS posture in deployment examples matches
docs/tls_strategy.mdrecommendation. - All
TODOandFIXMEcomments reviewed for security relevance.
-
zig build testpasses (includes security HTTP tests and fuzz edge cases). -
zig build compat-matrixproduces a clean compatibility matrix. - Security CI workflow (
security.yml) passes on the release branch.
- Changelog reviewed for security-relevant changes.
- Security fixes explicitly called out with severity.
- Breaking changes documented with migration guidance.
| Reviewer | Date | Status |
|---|---|---|
| Date | Change |
|---|---|
| 2026-03-13 | Initial security review checklist |