Back to skill

Security audit

Don't Starve Guide

Security checks for vulnerabilities and agentic risk

Overview

This is a game-guide skill with a disclosed local profile feature, but users should know it saves narrow gameplay facts across sessions.

Install only if you are comfortable with the skill keeping a local Don't Starve profile for personalization. Do not put sensitive personal data in gameplay preferences or notes, and inspect or remove ~/.config/dont-starve-skill/survivor-profile.json if answers start reflecting unwanted saved facts.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T02 · Agent Memory Poisoning

Warning
Location
scripts/memory.py:190
Finding

Persistent User-Controlled Profile Data Can Poison Future Agent Sessions

Content
View full analysis
str | None: if value is None: return None text = str(value).strip() if not text: return None if "\n" in text or "\r" in text or len(text) > MAX_FACT_TEXT_LENGTH: raise ValueError(f"{field} must be a concise single factual note, not raw dialogue.") return text ``` Accepted values are appended directly to persistent profile lists: ```python def append_unique_text( target: list[Any], incoming: Any, field: str, ) -> bool: values = incoming if isinstance(incoming, list) else [incoming] changed = False for raw_value in values: value = clean_fact_text(raw_value, field) if value is not None and value not in target: target.append(value) changed = True return changed ``` The entire profile is printed when it is read: ```python def command_read(_: argparse.Namespace) -> int: profile, created = load_prof ...[truncated 3844 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill includes command-style profile management and write operations that go beyond normal advisory behavior, yet these capabilities are absent from the declared purpose. In context, that makes the skill more dangerous because a user invoking a lore/survival guide would not reasonably expect hidden persistence, file I/O, or state migration logic to run as part of answering a game question.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill includes command-style profile management and write operations that go beyond normal advisory behavior, yet these capabilities are absent from the declared purpose. In context, that makes the skill more dangerous because a user invoking a lore/survival guide would not reasonably expect hidden persistence, file I/O, or state migration logic to run as part of answering a game question.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill includes command-style profile management and write operations that go beyond normal advisory behavior, yet these capabilities are absent from the declared purpose. In context, that makes the skill more dangerous because a user invoking a lore/survival guide would not reasonably expect hidden persistence, file I/O, or state migration logic to run as part of answering a game question.

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 59)May include surrounding context.

md
this `SKILL.md` when invoked via the skill system.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill instructs the agent to read environment variables and perform local file reads and writes, but it declares no explicit tool scope or permission boundary. That creates an authorization gap where a seemingly harmless gameplay guide can access persistent local state and the filesystem without transparent restriction, increasing the chance of unintended data exposure or modification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The examples are entirely written in Chinese and describe a rigid answer style, which can bias the agent toward responding in Chinese even when the user did not request that language. This creates an instruction-quality and user-alignment problem: the skill may override user language preference, reduce usability, and cause incorrect behavior in multilingual contexts.

Content

No source excerpt is available for this finding.