📦

Audit History

container-hadolint - 10 audits

Version comparison

Capability and finding changes across audited versions, newest first.

VersionDateResultReview itemsChange vs previous
v10 LatestJul 23, 2026, 05:17 AM 1 confirmed4No capability change
v9 Jul 7, 2026, 08:16 PM 1 confirmed2No capability change
v8 Jul 5, 2026, 01:59 AM No confirmed findings3No capability change
v7 Jul 5, 2026, 01:59 AM No confirmed findings3No capability change
v6 Jun 28, 2026, 05:11 AM 1 confirmed1No capability change
v5 Jan 16, 2026, 03:20 PM No confirmed findings0No capability change
v4 Jan 16, 2026, 03:20 PM No confirmed findings0External commandsNetwork accessFilesystem accessEnv variables
v3 Jan 10, 2026, 10:21 AM No confirmed findings0No capability change
v2 Jan 10, 2026, 10:21 AM No confirmed findings0No capability change
v1 Jan 10, 2026, 10:21 AM No confirmed findings0Baseline

Jul 23, 2026, 05:17 AM

Most alerts are false positives from Markdown, reference links, placeholder credentials, and examples labeled as insecure. Actionable risks include unsafe CI filename handling and unverified latest-binary downloads. Mutable CI dependencies add supply-chain exposure, while no prompt injection or malicious intent was found.

9
Files scanned
1,399
Lines analyzed
9
Review items
0
False positives ignored

Confirmed security concerns (1)

Medium
Mutable CI Dependencies
Workflow templates execute third-party actions by movable version tags and GitLab images tagged latest-debian. Retagged or compromised dependencies would run inside trusted CI jobs.
The templates visibly use action tags and latest-debian instead of immutable commit hashes or image digests.
Capability review items (4)

These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.

High
Shell command substitution
DOCKERFILES=$(find . -type f \( -name "Dockerfile*" -o -name "*.dockerfile" \) | tr '\n' ' ')
The workflow converts repository-controlled filenames into one string, then interpolates that output into shell code on line 80. A crafted filename can execute commands in CI.
Medium
Hardcoded URL · 2 occurrences
wget -O /usr/local/bin/hadolint https://github.com/hadolint/hadolint/releases/latest/download/hadoli
The workflow downloads a mutable latest Hadolint binary into an executable path without a version pin or integrity check. A compromised asset would execute in CI.
Medium
Shell command substitution
DOCKERFILES=$(find . -type f \( -name "Dockerfile*" -o -name "*.dockerfile" \))
The pipeline stores repository-controlled paths in a scalar and later iterates with unquoted field splitting. Crafted filenames can avoid accurate linting and bypass the security gate.

Risk Factors

⚙️ External commands (50)
🌐 Network access (17)
📁 Filesystem access (1)
🔑 Env variables (4)
Audited by: codex

Jul 7, 2026, 08:16 PM

Most static findings are false positives caused by Markdown code fences, reference URLs, taxonomy labels, and labeled Dockerfile examples. The real issue found is supply-chain exposure from downloading a latest Hadolint executable without checksum verification in the install guidance and CI template. No prompt injection, credential exfiltration intent, or malicious automation was found.

9
Files scanned
1,399
Lines analyzed
7
Review items
0
False positives ignored

Confirmed security concerns (1)

Medium
Unpinned Executable Download Without Checksum
The install guidance and GitHub Actions template download the latest Hadolint binary from GitHub and make it executable without pinning a release or verifying a checksum. Users who copy these steps rely on mutable remote content.
Both locations contain direct download-and-chmod install steps for an executable. The risk is supply-chain exposure rather than evidence of malicious exfiltration.
Capability review items (2)

These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.

Medium
Hardcoded URL · 2 occurrences
wget -O /usr/local/bin/hadolint https://github.com/hadolint/hadolint/releases/latest/download/hadoli
The workflow downloads the latest Hadolint executable into /usr/local/bin and marks it executable without checksum verification. Users who copy this CI template inherit a supply-chain risk from mutable remote content.

Risk Factors

⚙️ External commands (85)
🌐 Network access (17)
📁 Filesystem access (1)
🔑 Env variables (4)
Audited by: codex

Jul 5, 2026, 01:59 AM

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.

8
Files scanned
1,389
Lines analyzed
7
Review items
6
False positives ignored
Capability review items (3)

These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.

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 · 2 occurrences
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.
Static false positives ignored (6)

These static matches were dismissed by semantic review or matched schema-only tokens, so they are shown for transparency but do not drive the quality score.

Critical
Recursive delete on root/home · 5 occurrences
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.

Risk Factors

⚙️ External commands (85)
🌐 Network access (17)
📁 Filesystem access (1)
🔑 Env variables (4)
Audited by: codex

Jul 5, 2026, 01:59 AM

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.

8
Files scanned
1,389
Lines analyzed
7
Review items
6
False positives ignored
Capability review items (3)

These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.

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 · 2 occurrences
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.
Static false positives ignored (6)

These static matches were dismissed by semantic review or matched schema-only tokens, so they are shown for transparency but do not drive the quality score.

Critical
Recursive delete on root/home · 5 occurrences
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.

Risk Factors

⚙️ External commands (85)
🌐 Network access (17)
📁 Filesystem access (1)
🔑 Env variables (4)
Audited by: codex

Jun 28, 2026, 05:11 AM

The static analyzer reported many severe patterns, but review shows most are Markdown examples or Hadolint configuration references, not hidden malicious behavior. The skill is safe to publish with a warning because it encourages external command execution and includes an unverified network installer pattern.

8
Files scanned
1,389
Lines analyzed
6
Review items
4
False positives ignored

Confirmed security concerns (1)

Medium
Unverified Network Download in CI Template
The GitHub Actions template downloads the latest Hadolint binary with wget and makes it executable without checksum verification or immutable version pinning. This is legitimate setup guidance, but it creates supply-chain risk if copied directly into production CI.
The network download is explicit and no checksum or fixed release asset is shown. The context is an installation example, so the risk is supply-chain exposure rather than confirmed malicious behavior.
Needs review findings (1)

These findings came from uncertain legacy audit verdicts, so they require review but are not counted as confirmed security issues.

Medium
Agent May Run External Container Linting Commands
The skill is built around running hadolint, docker, find, jq, and CI shell snippets against repository files. This is expected for the skill, but users should understand that following the instructions can execute local tools and read Dockerfiles in the workspace.
The commands are clearly part of Dockerfile linting workflows and arguments are generally quoted. The risk depends on whether an AI agent executes the examples automatically in an untrusted repository.
Static false positives ignored (4)

These static matches were dismissed by semantic review or matched schema-only tokens, so they are shown for transparency but do not drive the quality score.

Low
Markdown Code Examples Triggered External Command Alerts
Most external command findings occur inside Markdown examples that demonstrate Hadolint usage, CI scripts, or Dockerfile remediation patterns. They are not hidden runtime code bundled with the skill.
The flagged lines are fenced examples and rule documentation. I did not find evidence that the skill ships executable scripts that run these commands automatically.
Low
Recursive Delete Alerts Are Dockerfile Cleanup Examples
The recursive deletion findings are examples of removing apt package lists or apk cache inside Dockerfile instructions. They do not delete host root or home directories.
The paths are package-manager cache directories in Dockerfile examples. They are bounded cleanup commands, not broad deletion of / or user home paths.
Low
Environment Secret Alerts Are Secure BuildKit Examples
The API key and authorization examples appear in documentation that warns against ARG secrets and recommends Docker BuildKit secret mounts. No evidence found of credential collection or exfiltration by the skill.
The surrounding text is defensive guidance about avoiding secrets in image layers. The external URL is an example endpoint, not a hidden destination used by the skill.
Low
Reconnaissance and C2 Keyword Alerts Are Contextual False Positives
Network and system reconnaissance alerts map to security-framework references, trusted registry examples, label schema fields, or ShellCheck rule names. No evidence found of scanning networks or contacting command-and-control infrastructure.
The suspicious tokens appear in normal security documentation and Hadolint configuration. I found no semantic evidence of malicious remote-control behavior.

Detected Patterns

Unpinned External Installer Pattern
Audited by: codex

Jan 16, 2026, 03:20 PM

This is a pure documentation skill with no executable code. All 200 static findings are false positives triggered by documentation examples showing Dockerfile patterns. The skill provides legitimate security documentation for Hadolint, an open-source Dockerfile linter. No scripts, network calls, or filesystem modifications exist. Behavior matches the stated purpose of Dockerfile security linting guidance.

9
Files scanned
1,617
Lines analyzed
4
Review items
0
False positives ignored

Risk Factors

⚙️ External commands (147)
assets/github-actions.yml:68 assets/gitlab-ci.yml:15 references/security_rules.md:21-23 references/security_rules.md:23-26 references/security_rules.md:26-28 references/security_rules.md:28-40 references/security_rules.md:40-42 references/security_rules.md:42-45 references/security_rules.md:45-47 references/security_rules.md:47-59 references/security_rules.md:59-63 references/security_rules.md:63-66 references/security_rules.md:66-70 references/security_rules.md:70-79 references/security_rules.md:79-82 references/security_rules.md:82-84 references/security_rules.md:84-87 references/security_rules.md:87-90 references/security_rules.md:90-99 references/security_rules.md:99-102 references/security_rules.md:102-105 references/security_rules.md:105-108 references/security_rules.md:108-111 references/security_rules.md:111-123 references/security_rules.md:123-125 references/security_rules.md:125-128 references/security_rules.md:128-130 references/security_rules.md:130-142 references/security_rules.md:142-144 references/security_rules.md:144-147 references/security_rules.md:147-152 references/security_rules.md:152-164 references/security_rules.md:164-166 references/security_rules.md:166-169 references/security_rules.md:169-173 references/security_rules.md:173-185 references/security_rules.md:185-187 references/security_rules.md:187-190 references/security_rules.md:190-192 references/security_rules.md:192-204 references/security_rules.md:204-207 references/security_rules.md:207-210 references/security_rules.md:210-214 references/security_rules.md:214-228 references/security_rules.md:228-231 references/security_rules.md:231-234 references/security_rules.md:234-237 references/security_rules.md:237-249 references/security_rules.md:249-252 references/security_rules.md:252-255 references/security_rules.md:255-259 references/security_rules.md:259-271 references/security_rules.md:271-275 references/security_rules.md:275-278 references/security_rules.md:278-283 references/security_rules.md:283-298 references/security_rules.md:298-302 references/security_rules.md:302-313 references/security_rules.md:313-320 references/security_rules.md:320-331 references/security_rules.md:331-334 references/security_rules.md:334-345 references/security_rules.md:345-354 references/security_rules.md:258 references/security_rules.md:255-259 SKILL.md:36-46 SKILL.md:46-50 SKILL.md:50-59 SKILL.md:59-63 SKILL.md:63-72 SKILL.md:72-80 SKILL.md:80-92 SKILL.md:92-95 SKILL.md:95-99 SKILL.md:99-109 SKILL.md:109-132 SKILL.md:132-136 SKILL.md:136-146 SKILL.md:146-152 SKILL.md:152-154 SKILL.md:154-178 SKILL.md:178-180 SKILL.md:180-181 SKILL.md:181-182 SKILL.md:182-183 SKILL.md:183-191 SKILL.md:191-203 SKILL.md:203-212 SKILL.md:212-218 SKILL.md:218-224 SKILL.md:224-238 SKILL.md:238-251 SKILL.md:251-260 SKILL.md:260-268 SKILL.md:268-281 SKILL.md:281-291 SKILL.md:291-293 SKILL.md:293-294 SKILL.md:294-295 SKILL.md:295-296 SKILL.md:296-298 SKILL.md:298-300 SKILL.md:300-301 SKILL.md:301-302 SKILL.md:302-303 SKILL.md:303-305 SKILL.md:305-307 SKILL.md:307-308 SKILL.md:308-309 SKILL.md:309-310 SKILL.md:310-311 SKILL.md:311-312 SKILL.md:312-320 SKILL.md:320-336 SKILL.md:336-342 SKILL.md:342-354 SKILL.md:354-360 SKILL.md:360-399 SKILL.md:399-402 SKILL.md:402-404 SKILL.md:404-410 SKILL.md:410-422 SKILL.md:422-457 SKILL.md:457-465 SKILL.md:465-467 SKILL.md:467-474 SKILL.md:474-480 SKILL.md:480-487 SKILL.md:487-497 SKILL.md:497-499 SKILL.md:499-506 SKILL.md:506-514 SKILL.md:514-521 SKILL.md:521-531 SKILL.md:531-537 SKILL.md:537-547 SKILL.md:547-551 SKILL.md:551-563 SKILL.md:563-567 SKILL.md:567-577 SKILL.md:577-581 SKILL.md:581-588 SKILL.md:245 SKILL.md:327 SKILL.md:238-251 SKILL.md:320-336 SKILL.md:244
🌐 Network access (21)
📁 Filesystem access (1)
🔑 Env variables (4)
Audited by: claude

Jan 16, 2026, 03:20 PM

This is a pure documentation skill with no executable code. All 200 static findings are false positives triggered by documentation examples showing Dockerfile patterns. The skill provides legitimate security documentation for Hadolint, an open-source Dockerfile linter. No scripts, network calls, or filesystem modifications exist. Behavior matches the stated purpose of Dockerfile security linting guidance.

9
Files scanned
1,617
Lines analyzed
4
Review items
0
False positives ignored

Risk Factors

⚙️ External commands (147)
assets/github-actions.yml:68 assets/gitlab-ci.yml:15 references/security_rules.md:21-23 references/security_rules.md:23-26 references/security_rules.md:26-28 references/security_rules.md:28-40 references/security_rules.md:40-42 references/security_rules.md:42-45 references/security_rules.md:45-47 references/security_rules.md:47-59 references/security_rules.md:59-63 references/security_rules.md:63-66 references/security_rules.md:66-70 references/security_rules.md:70-79 references/security_rules.md:79-82 references/security_rules.md:82-84 references/security_rules.md:84-87 references/security_rules.md:87-90 references/security_rules.md:90-99 references/security_rules.md:99-102 references/security_rules.md:102-105 references/security_rules.md:105-108 references/security_rules.md:108-111 references/security_rules.md:111-123 references/security_rules.md:123-125 references/security_rules.md:125-128 references/security_rules.md:128-130 references/security_rules.md:130-142 references/security_rules.md:142-144 references/security_rules.md:144-147 references/security_rules.md:147-152 references/security_rules.md:152-164 references/security_rules.md:164-166 references/security_rules.md:166-169 references/security_rules.md:169-173 references/security_rules.md:173-185 references/security_rules.md:185-187 references/security_rules.md:187-190 references/security_rules.md:190-192 references/security_rules.md:192-204 references/security_rules.md:204-207 references/security_rules.md:207-210 references/security_rules.md:210-214 references/security_rules.md:214-228 references/security_rules.md:228-231 references/security_rules.md:231-234 references/security_rules.md:234-237 references/security_rules.md:237-249 references/security_rules.md:249-252 references/security_rules.md:252-255 references/security_rules.md:255-259 references/security_rules.md:259-271 references/security_rules.md:271-275 references/security_rules.md:275-278 references/security_rules.md:278-283 references/security_rules.md:283-298 references/security_rules.md:298-302 references/security_rules.md:302-313 references/security_rules.md:313-320 references/security_rules.md:320-331 references/security_rules.md:331-334 references/security_rules.md:334-345 references/security_rules.md:345-354 references/security_rules.md:258 references/security_rules.md:255-259 SKILL.md:36-46 SKILL.md:46-50 SKILL.md:50-59 SKILL.md:59-63 SKILL.md:63-72 SKILL.md:72-80 SKILL.md:80-92 SKILL.md:92-95 SKILL.md:95-99 SKILL.md:99-109 SKILL.md:109-132 SKILL.md:132-136 SKILL.md:136-146 SKILL.md:146-152 SKILL.md:152-154 SKILL.md:154-178 SKILL.md:178-180 SKILL.md:180-181 SKILL.md:181-182 SKILL.md:182-183 SKILL.md:183-191 SKILL.md:191-203 SKILL.md:203-212 SKILL.md:212-218 SKILL.md:218-224 SKILL.md:224-238 SKILL.md:238-251 SKILL.md:251-260 SKILL.md:260-268 SKILL.md:268-281 SKILL.md:281-291 SKILL.md:291-293 SKILL.md:293-294 SKILL.md:294-295 SKILL.md:295-296 SKILL.md:296-298 SKILL.md:298-300 SKILL.md:300-301 SKILL.md:301-302 SKILL.md:302-303 SKILL.md:303-305 SKILL.md:305-307 SKILL.md:307-308 SKILL.md:308-309 SKILL.md:309-310 SKILL.md:310-311 SKILL.md:311-312 SKILL.md:312-320 SKILL.md:320-336 SKILL.md:336-342 SKILL.md:342-354 SKILL.md:354-360 SKILL.md:360-399 SKILL.md:399-402 SKILL.md:402-404 SKILL.md:404-410 SKILL.md:410-422 SKILL.md:422-457 SKILL.md:457-465 SKILL.md:465-467 SKILL.md:467-474 SKILL.md:474-480 SKILL.md:480-487 SKILL.md:487-497 SKILL.md:497-499 SKILL.md:499-506 SKILL.md:506-514 SKILL.md:514-521 SKILL.md:521-531 SKILL.md:531-537 SKILL.md:537-547 SKILL.md:547-551 SKILL.md:551-563 SKILL.md:563-567 SKILL.md:567-577 SKILL.md:577-581 SKILL.md:581-588 SKILL.md:245 SKILL.md:327 SKILL.md:238-251 SKILL.md:320-336 SKILL.md:244
🌐 Network access (21)
📁 Filesystem access (1)
🔑 Env variables (4)
Audited by: claude

Jan 10, 2026, 10:21 AM

This is a pure documentation and configuration skill with no executable code. The skill provides guidance for using Hadolint, an open-source Dockerfile linter, along with CI/CD templates and configuration files for container security validation. No scripts, network calls, or file system access beyond reading user-provided Dockerfiles. All behavior matches the stated purpose of Dockerfile security linting.

9
Files scanned
1,399
Lines analyzed
0
Review items
0
False positives ignored
No confirmed security findings were recorded for this completed audit.
Audited by: claude

Jan 10, 2026, 10:21 AM

This is a pure documentation and configuration skill with no executable code. The skill provides guidance for using Hadolint, an open-source Dockerfile linter, along with CI/CD templates and configuration files for container security validation. No scripts, network calls, or file system access beyond reading user-provided Dockerfiles. All behavior matches the stated purpose of Dockerfile security linting.

9
Files scanned
1,399
Lines analyzed
0
Review items
0
False positives ignored
No confirmed security findings were recorded for this completed audit.
Audited by: claude

Jan 10, 2026, 10:21 AM

This is a pure documentation and configuration skill with no executable code. The skill provides guidance for using Hadolint, an open-source Dockerfile linter, along with CI/CD templates and configuration files for container security validation. No scripts, network calls, or file system access beyond reading user-provided Dockerfiles. All behavior matches the stated purpose of Dockerfile security linting.

9
Files scanned
1,399
Lines analyzed
0
Review items
0
False positives ignored
No confirmed security findings were recorded for this completed audit.
Audited by: claude