Skip to content

Blueprint sandbox image uses :latest tag with empty digest field - IssueFinder - SN 14 #1438

Closed

Description

@dinuduke

Description

Description

The nemoclaw-blueprint/blueprint.yaml (line 22) references the sandbox image using the mutable :latest tag: ghcr.io/nvidia/openshell-community/sandboxes/openclaw:latest. The digest field on line 8 is documented as "computed at release time" but is currently empty. A registry compromise or accidental push replaces the expected image without detection.

Impact

Supply chain risk — sandbox image could be replaced without detection.

Affected Area

  • File(s): nemoclaw-blueprint/blueprint.yaml (lines 8, 22)

Reproduction Steps

  1. Read the blueprint configuration:
    cat nemoclaw-blueprint/blueprint.yaml | grep -A 3 'image\|tag\|digest'
  2. Observe: image uses :latest tag with an empty or missing digest field
  3. The image reference changes every time a new version is published

Environment

  • OS: Any
  • NemoClaw Version: v0.1.0
  • Branch: main
  • Runtime: Docker / OpenShell
  • Container / Orchestration Info: Blueprint-driven sandbox creation
  • Network Setup: Requires access to container registry

Debug Output

# Read the full blueprint:
cat nemoclaw-blueprint/blueprint.yaml

# Check the image reference:
grep -i 'image\|digest\|tag' nemoclaw-blueprint/blueprint.yaml
# Expected to see: digest: "" or digest: (empty) — no immutable pinning

# Get the current digest for pinning:
docker pull ghcr.io/nvidia/nemoclaw/sandbox-base:latest
docker inspect --format='{{index .RepoDigests 0}}' ghcr.io/nvidia/nemoclaw/sandbox-base:latest

Logs

# N/A — no error is produced. The :latest tag silently resolves to
# whatever was last pushed, creating a supply chain risk.

Checklist

  • I confirmed this bug is reproducible
  • I searched existing issues and this is not a duplicate

Activity

  1. dinuduke commented on Apr 3, 2026

    @dinuduke
    Author

    Recommended Fix

    # nemoclaw-blueprint/blueprint.yaml line 7:
    # Populate at release time via CI:
    digest: "sha256:<computed-at-release>"
    
    # CI script addition:
    # DIGEST=$(sha256sum nemoclaw-blueprint.tar.gz | cut -d' ' -f1)
    # sed -i "s/digest: \"\"/digest: \"sha256:$DIGEST\"/" blueprint.yaml

    Also pin the sandbox image reference to a digest instead of :latest tag.

  2. added a commit that references this issue on Apr 5, 2026
    ecb4df1
  3. added a commit that references this issue on Apr 8, 2026
    9a64e2c
  4. added
    area: packagingPackages, images, registries, installers, or distribution
    platform: containerAffects Docker, containerd, Podman, or images
    and removed
    area: packagingPackages, images, registries, installers, or distribution
    on Jun 3, 2026
  5. added theissue type on Jun 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    platform: containerAffects Docker, containerd, Podman, or images

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions