Versioned security assessment

Report ID: SA-E5107EE1

7/5/2026, 1:59:54 AM

container-hadolint security assessment v8

Skill Security Certification Report

Audit History
Audit model: codex Historical report
Skill name
container-hadolint
Version
v8
Maintainer
AgentSecOps
Coverage
8 Files scanned · 1,389 Lines analyzed
Policy version
Unavailable

Confirmed finding summary

No confirmed security findings

The completed audit recorded no confirmed security findings. This is not proof that the Skill has no side effects.

Installation context

Historical evidence

This report may not describe the currently installable artifact. Open the current Skill page for install guidance.

Open current Skill page

This report does not block or authorize the manifest or ZIP.

Most static alerts are false positives caused by Markdown examples, Hadolint rule text, placeholder secrets, and Dockerfile cache cleanup snippets. The only confirmed issues are hardening concerns in copyable workflow or install examples: an unsafe GitHub Actions path list pattern and unpinned latest binary downloads. No prompt injection, covert exfiltration intent, or malicious skill behavior was found.

Report position

Historical report

Open audit history before using this report to install.

Audit attestation

Not attestable

The required immutable binding is incomplete.

Human verification

Not verified

No human verification is recorded for this report.

Coverage

8 Files scanned · 1,389 Lines analyzed

3 items shown for review

Limitations

This report does not claim runtime or sandbox execution and does not prove the absence of side effects.

Evidence chain

Follow the evidence from source binding to the install contract. Available evidence supports verification; it is not a safety guarantee.

  1. Source

    Binding unavailable

  2. Artifact

    Identity incomplete

  3. Audit

    Complete

  4. Install contract

    Open manifest to verify

    Open manifest

Capabilities observed

Observed means this report recorded supporting evidence. Not recorded does not prove that a capability is absent.

Contains scripts

May execute code included with the Skill.

Not recorded by this audit

Network access

May connect to external services.

Observed in 17 evidence locations

Filesystem access

May read or write local files.

Observed in 1 evidence location

Env variables

May read values from the process environment.

Observed in 4 evidence locations

External commands

May invoke commands or programs outside the Skill.

Observed in 83 evidence locations

Capability review items (3)
Medium
Shell command substitution
DOCKERFILES=$(find . -type f \( -name "Dockerfile*" -o -name "*.dockerfile" \) | tr '\n' ' ')
The workflow stores a whitespace-joined list of repository file paths in a GitHub Actions output and later uses that output in a shell loop. In pull request workflows, crafted Dockerfile names can alter the generated shell script, so a quoted or null-delimited loop is safer.
Low
Hardcoded URL
wget -O /usr/local/bin/hadolint https://github.com/hadolint/hadolint/releases/latest/download/hadoli
The CI template downloads the latest Hadolint binary directly into /usr/local/bin without a version pin or checksum verification. This is a supply-chain hardening issue if users copy the workflow into production.
Low
Hardcoded URL
wget -O /usr/local/bin/hadolint https://github.com/hadolint/hadolint/releases/latest/download/hadoli
The install example downloads a latest-release executable from GitHub and marks it executable without checksum verification. The source is legitimate, but the pattern should be pinned and verified before automated use.

Risk findings

Confirmed security concerns are separated from items that still need review.

No confirmed security findings were recorded for this completed audit.

Remediation

Suggested fixes recorded by this audit. Applying them is the maintainer’s responsibility.

  1. FIX-001
    Medium
    GitHub Actions workflow builds a shell loop from repository file paths.
    Avoid passing path lists through GITHUB_OUTPUT for shell interpolation. Use find with null-delimited output in the same shell step and quote every path.
  2. FIX-002
    Low
    Install examples download the latest Hadolint binary without verification.
    Pin a Hadolint version and verify a published checksum, or use a pinned Hadolint action or container image digest.

Expert evidence

Immutable subject identity, scanner metadata, dismissed matches, and source-level evidence.

Artifact subject

Marketplace commit
Unavailable
Content hash
Unavailable
Tree hash
Unavailable
Skill path
Unavailable
Audit payload hash
Unavailable

Analysis metadata

Audit model: codex

Analysis state: Complete

Scope is limited to the recorded files, lines, methods, and evidence. No runtime or sandbox execution is claimed.

Static false positives ignored (6)
Critical
Recursive delete on root/home
rm -rf /var/lib/apt/lists/*
Force-confirmed blocker/critical static finding; AI dismissal overridden.
Critical
Recursive delete on root/home
rm -rf /var/lib/apt/lists/*
Force-confirmed blocker/critical static finding; AI dismissal overridden.
Critical
Recursive delete on root/home
rm -rf /var/lib/apt/lists/*
Force-confirmed blocker/critical static finding; AI dismissal overridden.
Critical
Recursive delete on root/home
rm -rf /var/lib/apt/lists/*
Force-confirmed blocker/critical static finding; AI dismissal overridden.
Critical
Recursive delete on root/home
rm -rf /var/lib/apt/lists/*
Force-confirmed blocker/critical static finding; AI dismissal overridden.
Critical
Recursive delete on root/home
&& rm -rf /var/cache/apk/*
Force-confirmed blocker/critical static finding; AI dismissal overridden.

Verify and export

The manifest and lockfile bind install artifacts to cryptographic hashes. This integrity claim is separate from the security assessment.

Audit attestation: not_attestable