Back to skill

Security audit

universal-shell-deployer

Security checks for vulnerabilities and agentic risk

Overview

This skill is mostly transparent about deploying infrastructure with shell commands, but it includes predictable MinIO admin credentials that could expose a deployed storage service.

Review carefully before installing. Do not use the MinIO recipe as-is; replace the root credentials with unique generated secrets or a secret manager value, and keep MinIO bound to trusted networks only. For remote nodes, confirm the host, transport, privilege level, and exact commands before allowing execution.

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 (1)

T09 · Insecure Skill Coding Practices

Error
Location
config.json:203
Finding

Hard-Coded Predictable MinIO Administrative Credentials

Content
View full analysis

Vulnerability Details

File Location: config.json, lines 203–204
Vulnerability Type: Hard-coded administrative credentials
Risk Level: High

json
"env": {
  "MINIO_ROOT_USER": "minioadmin",
  "MINIO_ROOT_PASSWORD": "change-me"
}

Technical Analysis

The enabled MinIO recipe stores a predictable root username and password in plaintext. SKILL.md instructs the agent to use recipe environment variables as the default implementation, so a MinIO deployment may apply these values directly.

Because the credentials are committed in configuration and are trivially guessable, they do not provide meaningful protection. Exploitation requires the deployed MinIO API or management console to be reachable by the attacker.

Attack Path

  1. A user requests installation or configuration of MinIO through the skill.
  2. The agent loads the enabled minio recipe from config.json.
  3. The recipe supplies minioadmin and change-me as the MinIO root credentials.
  4. MinIO starts with its API and management interfaces on the configured ports, typically 9000 and 9001.
  5. An attacker who can reach either relevant interface attempts authentication with the known credentials.
  6. If the defaults remain active, the attacker obtains MinIO root-level administrative access.

Impact Assessment

Successful exploitation could grant administrative control over the affected MinIO instance. Depending on network exposure and stored content, an attacker could:

  • Read, modify, upload, or delete stored objects.
  • Enumerate and alter buckets and access policies.
  • Create or modify service credentials and users.
  • Change server configuration available through MinIO administration.
  • Compromise the confidentiality, integrity, and availability of data in that MinIO deployment.

The scope is limited to MinIO instances actually deployed with these credentials and reachable by the attacker; the reviewed files do not establish that such an instance is currently running or ...[truncated 19 chars]

Remediation
View remediation

Remediation Suggestions

  • Remove the root username and password values from the committed recipe.
  • Obtain credentials at deployment time from a protected secret manager or secure user input.
  • Generate a cryptographically random, unique password when no secret is supplied.
  • Add validation that rejects placeholder and known-default credentials such as change-me.
  • Avoid placing secrets in config.json, command-line arguments, logs, execution results, or persisted state.
  • Restrict secret-file permissions to the service account where file-based injection is necessary.
  • Bind MinIO interfaces only to required networks and enforce firewall restrictions.
  • Rotate credentials immediately for any instance previously deployed from this recipe.
  • Verify after remediation that the old credentials no longer authenticate and that no unauthorized users or access keys remain.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest description is extremely broad and can cause this skill to trigger for a wide range of generic 'setup' requests, including local and remote infrastructure changes across multiple operating systems and services. In an agentic environment, over-broad routing increases the chance that a high-privilege command-execution skill is selected when a narrower, safer skill or a clarification step should have been used, raising the risk of unintended system modification or remote command execution.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The config embeds a known default administrative username and password for MinIO. In a skill specifically designed to deploy local or remote infrastructure and start services, this can lead directly to exposed object storage being stood up with predictable credentials, enabling unauthorized administrative access if the service is reachable.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

The example requests include Chinese-language prompts alongside English ones, but the skill provides no explicit language-selection policy. In this context, that can imply locale-specific behavior without offering the user a language choice or documenting that the skill is region-specific.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

This manifest defines multiple enabled recipes but provides no natural-language trigger scope, invocation constraints, or negative examples clarifying when a given recipe should be selected versus not selected. For manifest files, that lack of specificity can create ambiguous activation behavior if the surrounding system uses recipe names or broad matching to invoke skills.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.