| Version | Supported |
|---|---|
| latest | Yes |
Older releases are not actively patched. Users are encouraged to always use the latest release.
Please do not open a public GitHub issue for security vulnerabilities.
Report vulnerabilities privately via GitHub Security Advisories.
Include as much detail as possible:
- A description of the vulnerability and its potential impact
- Steps to reproduce or a proof-of-concept
- Affected versions
- Any suggested mitigations
You can expect an acknowledgement within 5 business days and a status update within 14 days.
This project uses automated security scanning in CI/CD:
| Scan | Tool | Trigger | Results |
|---|---|---|---|
| Source code & dependencies | Trivy | Every push to main, PRs |
GitHub Security tab |
| Docker image (build-time) | Trivy | Every push to main and version tags |
GitHub Security tab |
| Binary (build-time) | Trivy | Every version tag | GitHub Security tab |
| Docker image (scheduled) | Trivy | Weekly (Monday 06:00 UTC) | GitHub Security tab |
Scan results for CRITICAL and HIGH severity findings are uploaded to the
GitHub Security tab
as SARIF reports, where they can be reviewed and tracked.
-
The Docker image is built on
chainguard/wolfi-base, a minimal, hardened base image with a low CVE surface area. All installed packages are upgraded to their latest patched versions during the build.kubectlis intentionally excluded from the image since it is not used by the tool, reducing the attack surface.skopeois intentionally not part of the image:cranecovers all copy operations there andskopeoonly added unused attack surface. On a host install,skopeois still supported as a copy tool. -
The standalone Linux binary is built with PyInstaller on
ubuntu-latestGitHub Actions runners and published directly as a GitHub Release asset. -
All CI/CD workflows use pinned action versions and rely only on
GITHUB_TOKENwith least-privilege permissions — no external secrets are required. -
Registry credentials are written to a private temporary config that only contains the target registry (never the source registries) and are removed after each command. Prefer
--password-stdinorREGISTRY_PASSWORDover--password. -
Image references taken from charts are validated before they are used as command arguments.
-
The Docker image and the scheduled
latestrebuild are only pushed after a smoke test and a Trivy scan without fixable HIGH/CRITICAL findings.