OCImendby CloudTrace

What OCImend does, precisely

What OCImend fixes, what it only reports, and what it does not do yet

An image fix is only trustworthy if its limits are clear. This page lists them, then answers the questions teams ask before adopting a tool like this.

Coverage

AreaStatusWhat it means
OS packages (apt, apk, dnf, tdnf, microdnf)FixedVulnerable packages upgraded to the versions the distribution has fixed; the result is rescanned and started next to the original.
Python packages installed in the imageFixedUpgraded to fixed releases, then checked the same way.
Go programs (standard library and modules)FixedRebuilt from their source with the fixed Go release and modules; vulnerable code the program never calls is marked not affected.
Images without a package manager (distroless, minimal)FixedVulnerable files are replaced one by one with the fixed versions.
FIPS 140-3FixedA validated cryptographic module is added and FIPS mode enforced inside the image, then proven live. Needs OpenSSL 3; linux/amd64 only for now.
HardeningFixedPackages the app never uses removed; optional non-root user.
Java (Maven) and Node (npm) dependenciesReportedFound, listed with the fixed version, and included in the SBOM and VEX. Not rewritten inside the image: fix them in your build, the report names what to change.
arm64 and other platformsScan onlyAny offered platform can be scanned. Rebuilds are verified on linux/amd64. arm64 rebuilds need a native arm64 build host: the sandbox that isolates untrusted package scripts cannot emulate another architecture, and OCImend will not drop it to emulate. Not available yet.
The node operating system and kernelOut of scopeOCImend works on the workload image, not the host it runs on.

Does the fix get back into Git?

A fixed image on its own drifts away from the source that builds it. OCImend gives you three ways to close that gap, from least to most intrusive:

What happens to your token. It travels over HTTPS, is used for that one request, and is never stored, logged or shown again; it is kept out of error messages, and a rejected request does not repeat it back. A token that is not shaped like a GitHub token is refused before anything is sent, and a classic token with far more access than needed (organisation, deletion, hooks) is refused too. Use a fine-grained token limited to the one repository, with Contents and Pull requests read and write, expiring in a day. Requests are rate-limited per visitor and per repository, and the reviewed diff is the only change that is sent.

Every OCImend image also carries its source and base digests as labels and in its signed provenance, so what is running can always be traced back to what it was built from.

Does the fixed image still run?

Every build is started side by side with the original and its start-up behaviour compared. A build that adds vulnerabilities, removes none, or does not start like the original is withheld with the reason, never published. Upgrades that change a package's major version are listed for review in the signed remediation record and on the verify page, because those are the ones that can change behaviour. What OCImend does not run is your staging or canary: promote by digest through your own pipeline, and gate it with the policy check below.

What happens to signatures and SBOMs?

A fixed image is a new image with a new digest, so the original publisher's signature cannot carry over (it signs the original bytes). OCImend signs the new digest and attaches the evidence as signed attestations: a CycloneDX SBOM of the new contents, OpenVEX, SLSA provenance that names the source digest, per-scanner scan results from independent scanners, and a remediation record of exactly what changed. All are recorded in the public transparency log and verifiable with standard tools at /verify.

Registry support, plainly: images are served from a standard OCI registry (docker pull ocimend.io/…). Every signature and attestation is published twice: in the classic cosign tag layout that Kyverno and the Sigstore policy controller read, and in cosign's bundle format as OCI 1.1 referrers, which oras discover, cosign 3 and other referrers-aware tools find. The registry software does not serve the native /referrers/ endpoint (neither current release does); clients use the specification's tag fallback, so this works today without a registry change.

Policy gates and automation

Where it fits

These are different approaches to the same problem, not rivals in every case:

Missing something you need? Tell us from the app. See also the problems people report most and the trust center.