Back to skill

Security audit

Docker Compose Linter

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent Docker Compose linter, but it can print detected secret values into reports and has reliability limits that are overstated.

Install only if you are comfortable with its reports potentially containing secret values from Compose environment entries. Avoid running it on production files in shared CI logs until secret findings are redacted, and treat clean results as advisory because the custom parser may miss some valid YAML constructs.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/docker-compose-linter.py:274
Finding

Detected Secret Values Are Exposed in Audit Reports

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/docker-compose-linter.py:87
Finding

Incomplete YAML Parser Allows Compose Security Checks to Be Bypassed

Content
View full analysis
indent: child_lines.append(lines[i]) i += 1 if child_lines: node.children = _parse_lines(child_lines) nodes.append(node) continue ``` The parser is also described in `STATUS.md` as follows: ```markdown - Custom indentation-based YAML parser handles all docker-compose constructs ``` ### Technical Analysis The parser is not a complete YAML parser. It treats content following the first colon as a scalar unless nested content appears on subsequent, more deeply indented lines. It does not structurally interpret valid YAML features such as: - Flow mappings and flow sequences - Anchors and aliases - Merge keys - Multiline scalar forms - Several combinations of quoted or nested values Lint rules depend on the parser producing a hierarchy in which `services` contains service nodes and each service contains nodes such as `privileged`, `network_mode`, `environment`, and `ports`. When valid Compose content uses unsupported YAML syntax, security-sensitive fields can remain embedded in an opaque scalar and never reach the corresponding lint rules. For example, this valid flow-style structure does not produce the expected service-child hierarchy: ```yaml services: {app: {image: example:1.0, privileged: true, network_mode: host}} ``` As a result, checks for privileged mode, host networking, hardcoded secrets, unsafe defaults, and other conditions can be sk ...[truncated 1783 chars]
Remediation
View remediation
Vulnerability Patterns
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (1)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding

The skill documentation defines a command that reads a user-supplied FILE, but the manifest does not declare any tool scope such as permissions or allowed-tools. In an agent environment, undeclared file-read capability weakens least-privilege guarantees and can let the skill access files beyond what reviewers or policy engines expect.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.