Versioned security assessment

Report ID: SA-3BD2D37A

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

container-grype security assessment v7

Skill Security Certification Report

Audit History
Audit model: codex Historical report
Skill name
container-grype
Version
v7
Maintainer
AgentSecOps
Coverage
10 Files scanned · 3,459 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 caused by Markdown examples, reference material, or CI variable syntax. Real risks remain in bundled CI templates: remote installer scripts are piped into shells, a Jenkins example mounts the Docker socket, one token is exposed to action code, and Tekton parameters are used unquoted in shell commands.

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

10 Files scanned · 3,459 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
Hardcoded URL
curl -s https://raw.githubusercontent.com/aquasecurity/tfsec/master/scripts/install_linux.sh | bash
This URL is not only documentation; it downloads an installer during CI and is paired with direct shell execution. The hardcoded remote dependency can change outside repository review.
High
Git platform tokens
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
The workflow passes GITHUB_TOKEN to a third-party action. This is a legitimate pattern, but it exposes a repository token to action code and should be pinned and least-privileged.
High
Shell command substitution
grype $(params.IMAGE) \
The Tekton shell script interpolates pipeline parameters into command arguments without quoting or validation on line 369. A malicious image or severity parameter could alter the shell command.
High
Shell command substitution
--fail-on $(params.SEVERITY_THRESHOLD) \
The Tekton shell script interpolates pipeline parameters into command arguments without quoting or validation on line 370. A malicious image or severity parameter could alter the shell command.
High
Shell command substitution
grype $(params.IMAGE) -o table | tee /workspace/grype-report.txt
The Tekton shell script interpolates pipeline parameters into command arguments without quoting or validation on line 373. A malicious image or severity parameter could alter the shell command.
High
Hardcoded URL
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/
This hardcoded GitHub URL downloads a CI installer that is immediately executed. It creates an external supply-chain dependency during builds.
High
Hardcoded URL
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/
This hardcoded GitHub URL downloads a CI installer that is immediately executed. It creates an external supply-chain dependency during builds.

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 CI template downloads a remote install script from GitHub and pipes it directly to bash. This executes unaudited network content in the build environment.
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 the Grype installer from GitHub directly into sh. A compromised upstream script or network path would execute in CI.
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 Pipelines example pipes the Grype installer from GitHub directly into sh. This is a supply-chain execution risk in a privileged pipeline context.
RISK-004 Critical
Docker socket access
args '-v /var/run/docker.sock:/var/run/docker.sock'
The Jenkins example mounts /var/run/docker.sock into a scanner container. Docker socket access can allow container breakout or host-level control from the CI job.
RISK-005 High
Mutable CI Tool References
CI examples use mutable tool references such as aquasecurity/trivy-action@master and latest-derived Grype image tags. Security pipelines should use immutable action SHAs or image digests to avoid unreviewed supply-chain changes.
The cited CI examples explicitly use @master and latest-derived image tags. This is a supply-chain hardening issue not fully represented by the static pattern names.

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 bash or sh in CI examples.
    Replace curl-to-shell installs with pinned packages, verified release artifacts, or checksum validation before execution.
  2. FIX-002
    Critical
    The Jenkins example mounts the host Docker socket into the scanner container.
    Prefer registry or SBOM scans, rootless builders, remote Docker isolation, or a restricted socket proxy.
  3. FIX-003
    High
    Tekton scan commands interpolate parameters into shell commands without quoting or allowlist validation.
    Quote all parameter expansions and validate image references and severity thresholds before invoking Grype.
  4. FIX-004
    High
    CI examples use mutable scanner references and expose a GitHub token to action code.
    Pin actions and container images to immutable SHAs or digests, and set least-privilege workflow permissions.

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 (2)
High
C2 keywords
- **T1041**: Exfiltration Over C2 Channel
Force-confirmed blocker/high static finding; AI dismissal overridden.
High
Malware type keywords
[ ] 10. Remove malicious artifacts (malware, backdoors, webshells)
Force-confirmed blocker/high 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