Versioned security assessment

Report ID: SA-D46E6208

7/7/2026, 8:09:54 PM

container-grype security assessment v8

Skill Security Certification Report

Audit History
Audit model: codex Historical report
Skill name
container-grype
Version
v8
Maintainer
AgentSecOps
Coverage
11 Files scanned · 3,469 Lines analyzed
Policy version
Unavailable

Highest confirmed finding severity

Critical

5 confirmed security findings require attention.

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 findings are false positives from Markdown examples, reference material, and CI syntax. Confirmed risks are limited to the bundled CI templates. They include pipe-to-shell installers, Docker socket mounting, token exposure, unquoted Tekton parameters, and an unpinned action.

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

11 Files scanned · 3,469 Lines analyzed

12 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.

Observed in 2 evidence locations

Network access

May connect to external services.

Observed in 29 evidence locations

Filesystem access

May read or write local files.

Observed in 3 evidence locations

Env variables

May read values from the process environment.

Observed in 18 evidence locations

External commands

May invoke commands or programs outside the Skill.

Observed in 77 evidence locations

Capability review items (7)
High
Git platform tokens
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
The workflow passes GITHUB_TOKEN to a third-party action. This is a legitimate integration, but it expands the trust boundary for repository-scoped credentials.
Medium
Shell command substitution
grype $(params.IMAGE) \
Tekton substitutes the IMAGE parameter into a shell script without quoting or validation. If that parameter is user-controlled, shell metacharacters could alter the command.
Medium
Shell command substitution
--fail-on $(params.SEVERITY_THRESHOLD) \
Tekton substitutes the severity threshold into a shell command without quoting or validation. A malicious parameter value could change scanner arguments or command flow.
Medium
Shell command substitution
grype $(params.IMAGE) -o table | tee /workspace/grype-report.txt
Tekton substitutes the IMAGE parameter into a shell pipeline without quoting or validation. If the parameter is not trusted, the generated script can be unsafe.
Low
Hardcoded URL
curl -s https://raw.githubusercontent.com/aquasecurity/tfsec/master/scripts/install_linux.sh | bash
This URL is used to fetch a remote tfsec installer inside a CI job. Network access is expected, but the unpinned source creates supply-chain exposure.
Low
Hardcoded URL
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/
This URL downloads the Grype installer from GitHub during a CI run. The network use is intentional, but it depends on a mutable remote script.
Low
Hardcoded URL
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/
This URL downloads the Grype installer from GitHub during an Azure pipeline run. The network use is intentional, but it depends on a mutable remote script.

Risk findings

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

Confirmed security concerns (5)

RISK-001 Critical
Pipe to shell pattern
curl -s https://raw.githubusercontent.com/aquasecurity/tfsec/master/scripts/install_linux.sh | bash
The template pipes a remote install script directly into bash. If the upstream script or transport is compromised, the CI runner executes attacker-controlled code.
RISK-002 Critical
Pipe to shell pattern
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/
The CircleCI example pipes a remote installer into sh. This allows the fetched script to run with CI runner privileges without checksum verification.
RISK-003 Critical
Pipe to shell pattern
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/
The Azure example pipes a remote installer into sh. This allows the fetched script to run with CI runner privileges without checksum verification.
RISK-004 Critical
Docker socket access
args '-v /var/run/docker.sock:/var/run/docker.sock'
The Jenkins example mounts the host Docker socket into the scanner container. A compromised job or image could use that socket for host-level container control.
RISK-005 High
Unpinned CI Action Reference
The CI template uses aquasecurity/trivy-action@master. A mutable branch reference can change without review and execute different third-party code in the pipeline.
The file directly references a third-party GitHub Action by a mutable branch name. This is a clear supply-chain hardening issue, although not evidence of malicious intent.

Remediation

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

  1. FIX-001
    Critical
    Remote installer scripts are piped directly into shells in CI templates.
    Download pinned release artifacts, verify checksums or signatures, and run installers as separate reviewed steps.
  2. FIX-002
    Critical
    The Jenkins example mounts the host Docker socket into a scanner container.
    Use rootless builders, remote builders, or isolated runners instead of exposing /var/run/docker.sock to job containers.
  3. FIX-003
    High
    The CI template passes GITHUB_TOKEN to a third-party action.
    Use least-privilege workflow permissions, pin the action to an immutable commit, and avoid token exposure when summaries are not required.
  4. FIX-004
    High
    The CI template uses a mutable @master action reference.
    Pin third-party actions to trusted version tags or commit SHAs and review updates through dependency management.
  5. FIX-005
    Medium
    Tekton parameters are inserted into shell commands without quoting or validation.
    Validate image and severity parameters against allowlists, quote parameter expansions, or pass them as arguments to a wrapper script.

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.

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