[0.2.1] — 2026-08-15
Security release. Everyone running the k7-api control plane on 0.2.0 or
earlier should upgrade. Both issues were reported privately by
Jirayu Thongchotchaung (@JirayuThongchotchaung),
who held disclosure until this release was available — thank you.
Fixed
- Server-side request forgery via the sandbox
imageregistry host
(CWE-918). A sandbox creation request could name a registry host that
resolves to a loopback, link-local, or private address and make the
control plane issue the OCI fetch on the caller's behalf. Registry hosts
are now resolved and checked against public/allowlisted ranges before
any fetch, thelocalhost→ plain-HTTP downgrade is gone, and redirects
are disabled so an allowlisted host cannot bounce the request inward.
Resolution runs off the event loop, so the check cannot stall the API.
Added
- Optional per-key namespace authorization (CWE-862 / CWE-285).
API keys can be scoped to one or more namespaces with
k7 generate-api-key -n <namespace>, enforced on every namespace-bearing
endpoint; a scoped key cannot read or mutate another namespace and cannot
perform all-namespaces operations. Keys without a scope keep their
previous unrestricted behaviour, so this is backward compatible — scope
your keys to benefit from it.
Changed
SECURITY.mdstates the supported release line accurately.- Debian packaging targets
amd64explicitly and no longer runs the test
suite inside build chroots, which is what the Launchpad PPA needs.