Back to skill

Security audit

minecraft-server-admin

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent for Minecraft server administration, but it needs Review because it grants broad live-server control with weak guardrails and an unnecessary unpinned install dependency.

Install only for Minecraft servers you control. Keep RCON bound to localhost or use a trusted tunnel/VPN, use a dedicated strong password, and do not let an agent run destructive commands without explicit review. Consider removing or pinning the unused npm dependency and enable MC_SERVER_LOG only if you are comfortable exposing recent server logs to the agent.

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

T09 · Insecure Skill Coding Practices

Error
Location
scripts/rcon.js:158
Finding

Destructive RCON Commands Execute Without Enforced Confirmation or Authorization

Content
View full analysis
"'); console.log('Examples:'); console.log(' node rcon.js "list"'); console.log(' node rcon.js "ban PlayerX griefing"'); console.log(' node rcon.js "give Steve minecraft:diamond 64"'); console.log('\nEnvironment variables:'); console.log(' MC_RCON_HOST (default: localhost)'); console.log(' MC_RCON_PORT (default: 25575)'); console.log(' MC_RCON_PASSWORD (required)'); console.log('\nTesting current RCON connection...'); testConnection().then(r => { if (r.ok) { console.log(`OK connection healthy (latency ${r.latency}ms)`); console.log(` ${r.listOutput}`); } else { console.error(`Connection failed: ${r.error}`); process.exit(1); } }); return; } const command = args.join(' '); rconExec(command) .then(result => { console.log(result); process.exit(0); }) .catch(err => { console.error(err.message); process.exit(1); }); } ``` ### Technical Analysis The command-line interface concatenates all supplied arguments and passes the result directly to `rconExec`. There is no command allowlist, argument validation, caller authorization, destructive-command detection, or confirmation-token verification. This behavior contradicts the mandatory confirmation protocol documented in `SKILL.md:132-151`. The documentation requires confirmation for operations such as `ban`, `ban-ip`, `op`, `fill`, `kill @e`, `stop`, and `save-off`, but the executable implementation does not enforce that policy. The exported `rconExec` and `rconMulti` functions also expose un ...[truncated 1498 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/rcon.js:23
Finding

RCON Credentials and Administrative Commands Are Transmitted Over Unencrypted TCP

Content
View full analysis
{ socket.write(encodePacket(reqId, TYPE.AUTH, cfg.password)); }); ``` ### Technical Analysis The implementation establishes a raw TCP connection through Node.js `net.Socket` and sends the RCON authentication packet directly over that connection. It does not provide TLS encryption, certificate validation, server identity verification, or enforced tunneling. The authentication payload contains the RCON password, and later packets contain administrative commands and responses. Native Minecraft RCON does not protect this traffic with transport encryption. Although the default host is `localhost`, the `MC_RCON_HOST` environment variable permits arbitrary remote hosts, and the code does not warn about or reject insecure remote connections. Consequently, using this client across an untrusted or shared network exposes both credentials and privileged server-management traffic to passive interception and active manipulation. ### Attack Path 1. An administrator configures `MC_RCON_HOST` with a remote server address. 2. The client opens a plaintext TCP connection to the configured RCON port. 3. An attacker with visibility into the network path captures the authentication packet. 4. The attacker recovers the RCON password from the unencrypted payload. 5. The attacker c ...[truncated 960 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:15
Finding

Unused Third-Party Package Is Installed Without Version Pinning

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (11)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The manifest frames the skill as in-game RCON administration, but the documented behavior also includes direct local filesystem log access and offline analysis. That mismatch is dangerous because reviewers and users may authorize the skill expecting only console commands, while it can also read potentially sensitive server logs containing chat, IPs, usernames, commands, and activity history.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
For any player-related command, use: `scripts/rcon.js "<command>"`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
For any player-related command, use: `scripts/rcon.js "<command>"`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `scripts/log-analyzer.js` — Log parsing utilities

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The reference includes maintenance and lifecycle commands such as /save-off, /stop, and /reload even though the skill description explicitly says it does not handle full server lifecycle or related operational workflows. This broadens the effective capability of the skill beyond its declared scope and can enable service disruption, unsafe save-state changes, or other administrative actions an agent or user may invoke unintentionally.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

Documenting /stop exposes an immediate server shutdown capability that is not necessary for routine in-game administration and directly conflicts with the stated scope of the skill. In an agent context, this increases the risk of accidental or malicious denial of service because the command is simple, destructive to availability, and likely to be treated as a valid supported action.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding

The skill declares capabilities that use environment variables and network access but does not explicitly scope or constrain those tools in the manifest. This weakens policy enforcement and reviewability, making it easier for a skill with privileged credentials like an RCON password to overreach or be repurposed without clear guardrails.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill documentation says it is limited to in-game RCON administration, yet it instructs reading a server log file from the filesystem via MC_SERVER_LOG. This creates a scope expansion from remote command execution into local file access, which can expose sensitive operational and player data beyond what the user may expect.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The performance-monitoring workflow depends on reading local logs directly rather than staying within the stated RCON-only administration boundary. This broadens the skill's accessible data surface and may disclose historical activity or operational details not necessary for the core admin function.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The log analysis section explicitly directs shell-style tailing of a file, which exceeds the manifest's stated RCON-only scope and introduces filesystem access behavior. Because server logs can contain sensitive events and identifiers, this undocumented expansion increases privacy and data-exposure risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

This code is a command runner for Minecraft RCON and the header examples include impactful administrative actions such as banning a player and issuing game items. Although the file documents usage and required environment variables, it does not include any user-facing warning that commands are executed directly against a live server and may be destructive or irreversible.

Content

No source excerpt is available for this finding.