Clearcutt Catalog
Reference Catalog
Rust
Rust 1.95 · Distroless · Distroless runtime

clearcutt-rust1.95 : distroless

Hardened tier — no shells, no coreutils, runtime only.

v0.10.1 amd64arm64 Status: experimental Support: UNSUPPORTED Non-Prod Only Signature: Verified Provenance: Verified SBOM: Verified Vulnerability scan: Missing Tests: Verified Shell-Free Evidence overlays listed maintenance-stale
Multi-arch Manifest Digest:
sha256:25630edd86567afd38d2443d5a1250ecd673a501aa90272c81d351502c893790
Lifecycle Advisory: EXPERIMENTAL IMAGE

Advisory: This image is designated as experimental/development only and is strictly not allowed in production workloads.

Published Sun, 07 Jun 2026 16:42:20 GMT

Last Rebuilt Sun, 07 Jun 2026 16:42:20 GMT

Scan data missing
1

About this Image & Usage

Explore container capabilities, common use cases, and integration blueprints.

Capabilities & Guarantees

This Rust distroless image delivers a highly hardened, shell-less base container containing only glibc and CA trust anchors. It is optimized for hosting statically and dynamically compiled Rust microservices.

Common Use Cases

  • Production deployments of ultra-high-performance Rust web servers and gRPC APIs
  • Deploying resource-constrained edge-computing nodes and embedded container workloads
  • Reducing common shell-injection paths in minimal runtime environments

Runtime Security & Execution Contract

Shell PresenceNo (Shell-Free)
Package ManagerNo (Absent)
Secure UID OperatorUID 10001
Production TierYes (Allowed)
CA CertificatesPresent / Active
Timezone DataPresent / Active

Developer blueprints

Copy pre-configured code structures to accelerate deployment pipelines.

Dockerfile dockerfile
# Stage 1: Build optimized Rust binary in dev cargo compiler builder
FROM ghcr.io/northcutted/clearcutt/clearcutt-rust1.95:v0.10.1-dev AS builder
WORKDIR /app

COPY Cargo.toml Cargo.lock ./
# Create dummy main to cache dependency compilation
RUN mkdir src && echo "fn main() {}" > src/main.rs && cargo build --release

COPY . .
RUN touch src/main.rs && cargo build --release

# Stage 2: Hardened runner stage (distroless or slim OCI runtime)
FROM ghcr.io/northcutted/clearcutt/clearcutt-rust1.95:v0.10.1-distroless
WORKDIR /app

# Copy compiled Rust executable
COPY --from=builder /app/target/release/myapp ./myapp

# Run Rust application as secure non-root operator
USER 10001:10001
CMD ["./myapp"]

If your organization mandates a certified base OS (like Red Hat UBI, Amazon Linux, or Ubuntu Pro) for compliance, you can stack ClearCutt's RPATH-bound /nix/store closure directly on top without modifying base layers or bundled agents.

flake.overlay.nix nix
{
  description = "ClearCutt rust1.95 grafted onto a mandated base";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    clearcutt.url = "github:northcutted/clearcutt/v0.10.1?dir=core";
  };

  outputs = { self, nixpkgs, clearcutt }:
    let
      system = "x86_64-linux";
      pkgs = import nixpkgs { inherit system; };
      mandatedBase = pkgs.dockerTools.pullImage {
        imageName = "registry.access.redhat.com/ubi9/ubi-minimal";
        imageDigest = "sha256:REPLACE_WITH_PINNED_BASE_DIGEST";
        sha256 = "sha256-REPLACE_WITH_NIX_PREFETCH_DOCKER_HASH";
      };
    in {
      packages.${system}.overlayImage = clearcutt.lib.graftOntoBase {
        inherit system;
        fromImage = mandatedBase;
        runtime = "rust1.95";
        tier = "distroless";
        name = "acme-rust1.95-ubi";
        tag = "v0.10.1";
      };
    };
}

# Build: nix build .#packages.x86_64-linux.overlayImage
# Then prove the grafted runtime is byte-identical to the native runtime:
# clearcutt overlay verify \
#   --runtime-archive clearcutt-rust1.95.tar \
#   --grafted-archive result \
#   --runtime-ref ghcr.io/northcutted/clearcutt/clearcutt-rust1.95:v0.10.1-distroless@sha256:... \
#   --grafted-ref ghcr.io/acme/rust1.95-ubi:v0.10.1@sha256:... \
#   --target rust1.95-distroless \
#   --output-predicate
flake.nix nix
# Run an interactive local dev shell with the exact same remediated Rust compiler:
$ nix shell github:northcutted/clearcutt/v0.10.1?dir=core#clearcuttRust195-native

# Or declare inside your local flake.nix:
{
  inputs.clearcutt.url = "github:northcutted/clearcutt/v0.10.1?dir=core";
  outputs = { self, nixpkgs, clearcutt }: {
    devShells.x86_64-linux.default = let
      pkgs = import nixpkgs {
        system = "x86_64-linux";
        overlays = [ clearcutt.overlays.default ];
      };
    in pkgs.mkShell {
      buildInputs = [ pkgs.clearcuttRust195 ];
    };
  };
}
layer.nix nix
# Build a Rust OCI container declaratively via Nix
pkgs.dockerTools.buildImage {
  name = "custom-rust-app";
  tag = "latest";
  
  # Layer on top of ClearCutt's base
  fromImage = clearcutt-base-image;

  copyToRoot = pkgs.buildEnv {
    name = "image-root";
    paths = [
      rust-compiled-binary   # Highly optimized Rust package compiled cleanly
    ];
    pathsToLink = [ "/bin" ];
  };

  config = {
    Cmd = [ "/bin/rust-app" ];
    User = "10001:10001";
  };
}

Pull & Run Workspace

Select your preferred container engine or deployment platform target.

Pull by multi-arch digest (Recommended, Secure)

docker pull ghcr.io/northcutted/clearcutt/clearcutt-rust1.95@sha256:25630edd86567afd38d2443d5a1250ecd673a501aa90272c81d351502c893790

Pinned to release

docker pull ghcr.io/northcutted/clearcutt/clearcutt-rust1.95:v0.10.1-distroless

Quick pull (rolling)

docker pull ghcr.io/northcutted/clearcutt/clearcutt-rust1.95:distroless

Hardened docker run

docker run --rm \
  --read-only \
  --cap-drop=ALL \
  --security-opt no-new-privileges \
  --user 10001:10001 \
  --tmpfs /tmp:mode=1777 \
  ghcr.io/northcutted/clearcutt/clearcutt-rust1.95:v0.10.1-distroless

Pull by multi-arch digest (Recommended, Secure)

podman pull ghcr.io/northcutted/clearcutt/clearcutt-rust1.95@sha256:25630edd86567afd38d2443d5a1250ecd673a501aa90272c81d351502c893790

Pinned to release

podman pull ghcr.io/northcutted/clearcutt/clearcutt-rust1.95:v0.10.1-distroless

Quick pull (rolling)

podman pull ghcr.io/northcutted/clearcutt/clearcutt-rust1.95:distroless

Hardened podman run

podman run --rm \
  --read-only \
  --cap-drop=ALL \
  --security-opt no-new-privileges \
  --user 10001:10001 \
  --tmpfs /tmp:mode=1777 \
  ghcr.io/northcutted/clearcutt/clearcutt-rust1.95:v0.10.1-distroless
docker-compose.yml yaml
services:
  app:
    image: ghcr.io/northcutted/clearcutt/clearcutt-rust1.95:v0.10.1-distroless
    read_only: true
    user: "10001:10001"
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    tmpfs:
      - /tmp:mode=1777
pod.yaml yaml
apiVersion: v1
kind: Pod
metadata:
  name: clearcutt-rust1.95
spec:
  automountServiceAccountToken: false
  securityContext:
    runAsNonRoot: true
    runAsUser: 10001
    runAsGroup: 10001
    seccompProfile: { type: RuntimeDefault }
  containers:
    - name: app
      image: ghcr.io/northcutted/clearcutt/clearcutt-rust1.95:v0.10.1-distroless
      imagePullPolicy: IfNotPresent
      securityContext:
        readOnlyRootFilesystem: true
        allowPrivilegeEscalation: false
        capabilities: { drop: ["ALL"] }
      volumeMounts:
        - { name: tmp, mountPath: /tmp }
  volumes:
    - { name: tmp, emptyDir: { medium: Memory } }
flake.nix nix
{
  inputs.clearcutt.url = "github:northcutted/clearcutt/v0.10.1?dir=core";
  outputs = { self, nixpkgs, clearcutt }: {
    devShells.x86_64-linux.default = let
      pkgs = import nixpkgs {
        system = "x86_64-linux";
        overlays = [ clearcutt.overlays.default ];
      };
    in pkgs.mkShell {
      buildInputs = [ pkgs.clearcuttRust195 ];
    };
  };
}
2

Verify & Audit Compliance

Inspect catalog evidence, run registry-side verification where evidence exists, and review vulnerability gates.

Provenance & signatures

Cryptographically audit OCI identity claims and supply chain gating artifacts.

raw in-toto JSONL

Cryptographic Proof

CATALOG REPORTS SIGNATURE
Signing Workflow release.yml
Workflow Ref refs/heads/main
OIDC Issuer token.actions.githubusercontent.com
OIDC Certificate Subject
https://github.com/northcutted/clearcutt/.github/workflows/release.yml@refs/heads/main

Supply Chain Provenance

PROVENANCE RECORDED 3
Build Type GitHub Actions Workflow
Predicate Schema SLSA Provenance v1.0
Source Material github.com/northcutted/clearcutt
Commit SHA 8731471 ↗
Signed provenance record: Passed

Compilation & Tests

TESTS PASSED
Gating timestamp: 2026-06-07T16:20

Attestations

4 kinds of evidence for this image. The counts are how many times each was independently signed into the public transparency log — not how many distinct artifacts exist.

37 signed records
Subject ghcr.io/northcutted/clearcutt/clearcutt-rust1.95 Digest sha256:25630edd8656... index · amd64+arm64 Signed By release.yml @ main keyless ✓
Two ways to verify — pick the ecosystem you know
cosign · OCI Attestation lives with the image in the registry. Verify with cosign verify-attestation.
gh CLI · GitHub GitHub first-party attestation. Verify with gh attestation verify.

The subject above is the multi-arch index (amd64 + arm64). Each architecture's SBOM is attested separately, in both ecosystems — so one SBOM naturally appears as several signed records below. Records also accumulate as the image is rebuilt, with each release re-signing into the transparency log afresh. Every entry is independent and publicly verifiable: click any #index below to inspect it in Sigstore Rekor, or use the copy-paste commands below to verify them locally.

Build provenance slsa.dev/provenance/v1

How and where the image was built — binds this digest to the exact workflow run, commit, and builder.

signed
SBOM spdx.dev/Document

Software Bill of Materials — the full inventory of packages baked into the image.

15× signed
Test results cosign.sigstore.dev/attestation/v1

Signed evidence that the release-gate test suite passed for this exact digest.

14× signed
Cosign signature sigstore.dev/cosign/sign/v1

The keyless cosign signature statement covering the image index.

signed
Verify with
Inspect Rekor log

Active Verification Toolkit

Run registry-side verification commands for the recorded release evidence.

Direct Cryptographic Evidence & Verification

Expected Certificate Subject https://github.com/northcutted/clearcutt/.github/workflows/release.yml@refs/heads/main
Expected Certificate OIDC Issuer https://token.actions.githubusercontent.com
Manifest Index Digest sha256:25630edd86567afd38d2443d5a1250ecd673a501aa90272c81d351502c893790
One-step Audit Command

Run the native compiled Go CLI command locally to verify the registry digest, Sigstore signature, SBOM and test attestations, and SLSA provenance:

clearcutt verify release-evidence \
  --ref ghcr.io/northcutted/clearcutt/clearcutt-rust1.95@sha256:25630edd86567afd38d2443d5a1250ecd673a501aa90272c81d351502c893790 \
  --repo northcutted/clearcutt \
  --workflow-identity 'https://github.com/northcutted/clearcutt/.github/workflows/release.yml@refs/heads/main'

1. Inspect Security Metadata

Query deep, high-fidelity security metadata, dynamic entrypoints, non-root user settings, architectures, and release asset URLs.

CATALOG_DIR=./path/to/catalog
clearcutt --catalog "$CATALOG_DIR" inspect rust1.95-distroless --tag v0.10.1

2. Local Policy Gate Verification

Check catalog-record evidence flags, smoke tests, vulnerability limits, and lifecycle constraints locally or in CI pipelines. Use the release-evidence command or the Cosign/SLSA tabs for registry-side cryptographic verification.

CATALOG_DIR=./path/to/catalog
clearcutt --catalog "$CATALOG_DIR" verify image rust1.95-distroless \
  --tag v0.10.1 \
  --require-production \
  --require-signature \
  --require-sbom \
  --require-provenance \
  --max-critical 0 \
  --max-high 5

3. Runtime Conformance Audit

Verify runtime specifications offline, asserting timezone configurations, dynamic links, CA certificate paths, and rootless isolation boundaries.

clearcutt conformance run \
  --expect-runtime rust

4. Scaffold Nix Overlay Graft

Under strict corporate base OS mandates, generate a workspace scaffolding to graft this runtime overlay onto existing host layers.

clearcutt overlay generate \
  --runtime rust1.95 \
  --tier distroless \
  --base registry.access.redhat.com/ubi9/ubi-minimal \
  --output my-rust1.95-overlay/

1. Verify Keyless OIDC Signature

Confirm this OCI image was built in your official release workflow and signed via keyless OIDC certificates.

cosign verify ghcr.io/northcutted/clearcutt/clearcutt-rust1.95@sha256:25630edd86567afd38d2443d5a1250ecd673a501aa90272c81d351502c893790 \
  --certificate-identity 'https://github.com/northcutted/clearcutt/.github/workflows/release.yml@refs/heads/main' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  --output json

2. Verify Cryptographic SBOM Attestation

Extract and cryptographically verify the compiled package software bill of materials statement.

cosign verify-attestation ghcr.io/northcutted/clearcutt/clearcutt-rust1.95@sha256:25630edd86567afd38d2443d5a1250ecd673a501aa90272c81d351502c893790 \
  --type spdxjson \
  --certificate-identity 'https://github.com/northcutted/clearcutt/.github/workflows/release.yml@refs/heads/main' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  | jq '.payload | @base64d | fromjson | .predicate'

slsa-verifier (SLSA Build L3)

Verify SLSA Build L3 provenance from the configured builder and source ref.

slsa-verifier verify-image ghcr.io/northcutted/clearcutt/clearcutt-rust1.95@sha256:25630edd86567afd38d2443d5a1250ecd673a501aa90272c81d351502c893790 \
  --source-uri 'github.com/northcutted/clearcutt' \
  --source-branch 'main'

GitHub Native Attestation

Audit the GitHub-native provenance attestation using the GitHub CLI client.

gh attestation verify oci://ghcr.io/northcutted/clearcutt/clearcutt-rust1.95@sha256:25630edd86567afd38d2443d5a1250ecd673a501aa90272c81d351502c893790 \
  --repo northcutted/clearcutt \
  --cert-identity 'https://github.com/northcutted/clearcutt/.github/workflows/release.yml@refs/heads/main' \
  --source-ref refs/heads/main
Loading vulnerability data...
3

Deep-Dive & OCI Specifications

Analyze the full Nix store dependency closure, image layer architecture, and OCI configuration labels.

Software Bill of Materials

Every package included in the image's /nix/store closure. Generated from the actual OCI archive at build time and attached as an SPDX SBOM, using the same package inventory as the CVE findings above.

SBOM generated Sun, 07 Jun 2026 16:19:52 GMT. Toggle between architectures; the package set typically matches but layer hashes differ.

Loading SBOM data...
Loading layer data...

Image Specifications & Release Ledger

Inspect the static OCI container metadata labels and browse the immutable published release history for this image.

KeyValue
org.opencontainers.image.authors ClearCutt maintainers
org.opencontainers.image.description Hardened ClearCutt Base Image for rust (1.95) - Tier: distroless
org.opencontainers.image.licenses Apache-2.0
org.opencontainers.image.ref.name distroless
org.opencontainers.image.source https://github.com/northcutted/clearcutt
org.opencontainers.image.title clearcutt-rust-1.95
org.opencontainers.image.url https://github.com/northcutted/clearcutt
org.opencontainers.image.vendor ClearCutt
org.opencontainers.image.version 1.95
Tag Published Archs Packages
v0.14.0 latest Sat, 11 Jul 2026 00:47:46 GMT amd64arm64 1 .intoto.jsonl ↗
v0.13.0 Fri, 10 Jul 2026 00:21:20 GMT amd64arm64 1 .intoto.jsonl ↗
v0.12.2 Sat, 04 Jul 2026 17:29:57 GMT amd64arm64 1 .intoto.jsonl ↗
v0.12.1 Sat, 04 Jul 2026 13:08:58 GMT amd64arm64 1 .intoto.jsonl ↗
v0.11.1 Wed, 10 Jun 2026 02:52:21 GMT amd64arm64 1 .intoto.jsonl ↗
v0.11.0 Wed, 10 Jun 2026 01:24:14 GMT amd64arm64 1 .intoto.jsonl ↗
v0.10.4 Tue, 09 Jun 2026 12:54:17 GMT amd64arm64 7 .intoto.jsonl ↗
v0.10.2 Sun, 07 Jun 2026 21:31:16 GMT amd64arm64 7 .intoto.jsonl ↗
v0.10.1 Sun, 07 Jun 2026 16:42:20 GMT amd64arm64 7 .intoto.jsonl ↗
v0.10.0 Sun, 07 Jun 2026 14:37:59 GMT amd64arm64 7 .intoto.jsonl ↗