Back to skill

Security audit

Docker V1基础工具免费版

Security checks for vulnerabilities and agentic risk

Overview

This Docker helper is not overtly malicious, but it asks for command execution around high-impact Docker operations while giving overly broad activation guidance and unsafe copy-paste examples.

Install only if you specifically need a legacy Docker V1 helper and are comfortable with the agent running Docker shell commands. Do not copy the examples into production unchanged: pin images by digest or audited version, replace hardcoded passwords with secrets, avoid exposing databases publicly, review destructive commands such as prune/rm/down -v, and keep invocations limited to explicit Docker V1 tasks.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:177
Finding

Publicly Exposed PostgreSQL Service Uses a Hardcoded Weak Password

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 177-185
Vulnerability Type: Hardcoded credential and unsafe network exposure
Risk Level: High

Vulnerable Code

yaml
db:
  image: postgres:13
  environment:
    POSTGRES_PASSWORD: secret
    POSTGRES_DB: mydb
  volumes:
    - db-data:/var/lib/数据库/data
  ports:
    - "5432:5432"

Technical Analysis

The Docker Compose example configures PostgreSQL with the predictable password secret and publishes container port 5432 to host port 5432. Without an explicit host address, Docker normally binds the published port on all host interfaces.

Because this skill presents examples intended for direct use, a user may deploy this configuration without replacing the credential or restricting network access. Any party capable of reaching the host's port 5432 can attempt to authenticate using the documented password. The risk depends on firewall rules, routing, the database user configuration, and whether the example is deployed unchanged.

Attack Path

  1. A user copies the Compose example from SKILL.md.
  2. The user starts it with docker-compose up -d.
  3. Docker publishes PostgreSQL port 5432 on the host.
  4. An attacker discovers that port through network scanning or prior knowledge.
  5. The attacker attempts PostgreSQL authentication using the hardcoded password secret and likely default account assumptions.
  6. If authentication succeeds, the attacker accesses or modifies databases according to the compromised database account's privileges.

Impact Assessment

Successful exploitation may allow unauthorized reading, alteration, or deletion of database records. It may also permit database creation, schema modification, or other operations granted to the authenticated PostgreSQL role. The direct scope is the exposed database service and its stored data; further impact depends on application trust relationships, mounted data, and database privileges.

Remediation
View remediation

Remediation Suggestions

  • Remove the hardcoded password and require secret injection through a protected environment file, Docker secret, or external secret manager.
  • Do not publish PostgreSQL to the host unless external access is required.
  • For local-only access, bind explicitly to loopback, for example:
    yaml
    ports:
      - "127.0.0.1:5432:5432"
    
  • Prefer communication over a private Compose network between application and database services.
  • Require a randomly generated, high-entropy password and ensure secret files are excluded from version control.
  • Add a warning that examples must not be deployed unchanged in production.
  • Apply host firewall and database access-control rules to restrict authorized source addresses and users.

T08 · Insecure Dependencies

Warning
Location
SKILL.md:377
Finding

Unpinned Installation of Obsolete Docker Compose V1 Dependency

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, line 377
Vulnerability Type: Unpinned legacy third-party dependency installation
Risk Level: Medium

Vulnerable Code

text
| docker-compose V1 | tool | recommended | pip install docker-compose |

Technical Analysis

The documentation recommends installing docker-compose from a Python package index without an exact version or integrity hashes. Consequently, the installed package and its transitive dependencies are determined at installation time and may change independently of the reviewed skill.

The instruction also promotes the legacy Compose V1 implementation. Installing an obsolete dependency increases exposure to known vulnerabilities, incompatibilities, and packages that no longer receive normal security maintenance. If executed in a system-wide or privileged Python environment, package installation can affect other applications and installation-time package code may run with the invoking user's privileges.

No malicious package or active dependency-confusion campaign was confirmed during this audit; the issue is the unsafe, mutable dependency acquisition method.

Attack Path

  1. A user follows the dependency instruction and executes pip install docker-compose.
  2. Pip resolves the package and transitive dependencies from its configured package index without a lock file or required hashes.
  3. A compromised package release, unsafe transitive version, or index/configuration manipulation supplies unintended package content.
  4. Package installation or subsequent invocation executes that content with the installing user's privileges.
  5. If the user installs it with elevated privileges or exposes Docker access to the tool, the resulting compromise may affect the host or Docker-managed workloads.

Impact Assessment

At minimum, exploitation can compromise the user's Python environment and files accessible to that account. If installation occurs as root, the impact can exten ...[truncated 251 chars]

Remediation
View remediation

Remediation Suggestions

  • Prefer the maintained Docker Compose V2 plugin obtained from Docker's authenticated official repository.
  • If V1 is strictly required for legacy compatibility, pin an audited exact version and document its support and vulnerability status.
  • Install dependencies in an isolated virtual environment rather than the system Python environment.
  • Use a lock file with cryptographic hashes, such as pip's --require-hashes, and explicitly configure a trusted package index.
  • Verify downloaded artifacts against publisher-provided signatures or checksums where available.
  • Avoid privileged package installation and limit Docker daemon access to users and processes that require it.
  • Add a migration plan and an explicit warning that Compose V1 is obsolete.
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (13)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The top-level description says to use the skill for broad tasks like code generation, programming assistance, debugging, testing, and deployment, far beyond narrowly scoped Docker V1 maintenance. Overbroad triggers increase the chance that an agent auto-selects this exec-capable skill for unrelated requests, which can unnecessarily expose the environment to command execution.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The description explicitly states '支持中文交互', and the document consistently presents the interaction mode as Chinese-only without any opt-in or alternative language option. Under the policy, forcing a specific language or locale without user choice is a natural-language policy violation unless clearly justified and documented as region-specific.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding

The example uses an unpinned image reference (docker run nginx), which resolves implicitly to a mutable tag and allows different image contents to be pulled over time. In a skill with exec capability that encourages direct command execution, this increases supply-chain risk because users may run an unintended or compromised image without noticing.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

The command docker run -d nginx still relies on an unpinned image reference, so the container may be created from whatever image nginx currently maps to. Because the skill is designed to help users execute commands directly, this can silently introduce drift or malicious image substitution if the upstream image changes or a registry is tampered with.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

Using docker run --name my-nginx -d nginx references a mutable, unpinned image. In an automation-oriented skill, users may copy and execute this command verbatim, creating a supply-chain exposure where the deployed container contents are not reproducible or trustworthy.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

The example docker run -p 8080:80 -d nginx pulls or uses an unpinned image, which is risky because the contents behind that reference may change unexpectedly. Since the skill is explicitly meant to be used for deployment and debugging with shell execution, insecure examples are more likely to be operationalized directly.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
99% confidence
Finding

docker pull nginx:latest explicitly uses the mutable latest tag, which is a classic anti-pattern for secure and reproducible deployments. In a skill that may cause an agent or user to execute commands in real environments, this can result in unreviewed upgrades, breakage, or accidental retrieval of a compromised image version.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The activation condition under 触发条件 is ambiguous and broad, making it easy for the skill to be invoked in situations outside its intended Docker V1 niche. In the context of a skill that can execute shell commands, poor scoping increases the probability of accidental or excessive tool use.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The snippet docker run --rm myapp:1.0 echo "兼容性测试通过" uses a version tag but not an immutable digest, so it still permits tag retargeting in registries. In this skill's context, examples are likely to be reused in CI, migration checks, or agent-driven execution, making mutable tags a realistic supply-chain concern.

Content

No source excerpt is available for this finding.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 341)May include surrounding context.

md
# 依赖说明
# 参考 docs.docker.com 安装最新版
# 2. 安装Compose V2插件
sudo apt install docker-compose-plugin  # Debian/Ubuntu
# 3. 验证V2
docker compose version
# 4. 测试V1配置兼容性

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill manifest presents a Docker V1 helper, but later documentation broadens its scope to generic file processing, API integration, and automation capabilities unrelated to that purpose. This scope drift can cause agents or users to grant or exercise capabilities beyond the expected trust boundary, especially because the skill already has exec permission.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Advertising external API integration in a local Docker management skill expands the perceived operational scope without corresponding justification in the skill's primary purpose. In practice, this can mislead an agent into making networked or data-handling decisions outside the user's intent, increasing the chance of data exfiltration or misuse when paired with command execution.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The manifest frames the skill as a classic Docker command and basic container-management assistant. A generalized '读取、解析和写入操作' file-processing capability is broader than necessary for that purpose and is not otherwise justified in the skill description.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.