Connect
CVE remediation

Turn CVE remediation into rebuild-and-ship

Every Flox environment is hash-pinned with a deterministic SBOM. Detect what is affected, rebuild from a pinned manifest, and roll forward or back in one step, instead of hand-chasing each image.

Pinned by construction
Hash-pinned envs100%
Image-scan guessworknone
Per environment
Deterministic SBOM1
Generatedat build
Identical everywhere
Inputshash-pinned
Laptop to prodsame bits
Built on Nix
Reproducible buildsyes
Provenanceattestable
The moment

Four trends are converging

Each is manageable alone. Together they create a step-change in the volume and urgency of the patches every team has to absorb, and ticket-driven processes cannot keep up.

01

More latent CVEs surfacing

Vulnerabilities long buried in production dependencies are being found at an accelerating rate.

02

AI chains exploits faster

Models combine several individually low-severity CVEs into novel, high-impact attack paths.

03

Supply-chain compromises rising

Upstream package and registry compromises arrive with little warning and demand a fast rollout of patched versions.

04

Custom software inventory growing

AI makes software easier to create, and every new artifact joins the list of things you have to keep patched.

STEP CHANGE202020232026VOLUMECVEs disclosedAI-assisted exploit chainsSupply-chain compromisesCustom software inventory

Four independently rising curves arrive together. The load on patch operations is non-linear.

The problem

Why CVE remediation is slow today

You do not triage 400 CVEs. The slow part is never the patch command, it is not knowing which environments are affected and not being able to prove what you shipped. Context beats vuln-count theater: when the surface is pinned and known, you rebuild exactly the environments that are affected.

Scan and chase

The fire drill

  • Scan built images and hope coverage is complete.
  • Hand-edit Dockerfiles, one service at a time.
  • Re-scan, cross fingers, and reconstruct what shipped.
  • Hunt for an old tag when you need to roll back.
With Flox

Rebuild and ship

  • Read the deterministic SBOM you already have.
  • Bump one pin in the manifest and rebuild from it.
  • Roll the same hash-locked build out everywhere.
  • Roll back to a pinned manifest in one step.
The workflow

Detect, remediate, build, publish

Four steps on a surface that is pinned by construction, so remediation is a version bump and a reproducible build, not a cross-team investigation. Rolling back is the same switch, shown right below.

1
$ flox list

Detect

List the installed packages and their pinned versions, and find the one carrying the CVE.

2
$ flox upgrade openssl

Remediate

Re-resolve openssl to the patched build. The lock updates and the environment rebuilds reproducibly.

3
$ flox build api-service

Build

Build the api-service package from the patched environment, declared in the manifest [build] table.

4
$ flox publish api-service

Publish

Publish the patched build to the catalog. Every consumer installs the fix from there.

One-step rollback

Rebuild from a pinned manifest and roll forward or back

Remediation is a switch, not a project. Flip between the CVE-affected manifest and the pinned-clean one: a single hash-pinned package changes while every other dependency is held constant.

One pin changes. Everything else is held constant.
manifest.tomlCVE detected
  1 version = 1  2 [install]  3 curl.pkg-path = "curl"  4 python.pkg-path = "python313"  5 openssl.pkg-path = "openssl"  6 - openssl.version = "3.0.13"   # CVE-2024-2511

The same toggle is the rollback. Pin back to the previous manifest and the environment rebuilds, byte for byte, with its SBOM and provenance intact.

Anatomy

Every environment ships a deterministic SBOM

What every Flox environment carries. The pins, the dependency graph, and the lockfile are not generated after the fact, they are how the environment is built.

api-service.sbomdeterministic
hash-pins
opensslsha256:b72e…d4
curlsha256:1a0c…9f
dependencies
direct32 packages
transitive380 packages
lockfile
manifest.lockpins the full graph
rebuildbyte-for-byte
  • hash-pins
    Every input is hash-pinned

    Each package resolves to an input-addressed hash, so the exact bits in the environment are knowable, not estimated.

  • dependencies
    The full transitive surface

    Direct and transitive dependencies are enumerated, which is exactly what software composition analysis needs to be accurate.

  • lockfile
    One file pins it all

    The lockfile freezes the whole graph. Rebuild it anywhere and you get the same environment, byte for byte.

For security teams

Audit-ready provenance for security teams

Reproducible, hash-pinned builds make compliance and supply-chain attestation tractable. The evidence is a byproduct of how the environment is built, not a report you assemble after an incident.

Deterministic SBOM

A complete, hash-pinned bill of materials for every environment, ready for your software composition analysis and policy tooling.

Provenance you can attest

Input-addressed builds carry a verifiable record of what went in, so you can prove exactly what shipped and where it came from.

Reproducible builds

Built on Nix, the same manifest rebuilds the same environment anywhere, so audits and incident response start from a known, repeatable state.

See how the pinned surface fits the wider workflow in Control your SDLC, or read the docs.

Rebuild and ship, before the next CVE.

Talk to us and we will show your platform and security teams how to turn CVE remediation into rebuild-and-ship.