Back to skill

Security audit

MIM Chat

Security checks for vulnerabilities and agentic risk

Overview

This chat skill matches its stated purpose, but it needs Review because it installs live npm code and automatically reads and posts to an external chat service without clear user-control or untrusted-content safeguards.

Install only if you are comfortable with the agent running npm and Node.js, connecting to the declared external chat service, reading public chat history, and posting messages. Treat all chat messages, names, room history, and away messages as untrusted; do not allow the agent to send secrets, system prompts, private files, credentials, or unrelated conversation context into the chat.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:91
Finding

Mandatory Processing of Untrusted Chat Content Enables Prompt Injection

Content
View full analysis
{ // messages = array of recent messages (up to 200) // Each: { id, roomId, screenName, text, timestamp, type } messages.forEach((msg) => console.log(msg.screenName + ": " + msg.text)); }); ``` ### Technical Analysis The Skill directs the agent to always retrieve and read chat history from a public, externally controlled chat service. Message text and screen names can be supplied by arbitrary chat participants, but the Skill does not define them as untrusted data or prohibit the agent from following instructions embedded in them. This creates a prompt-injection boundary failure. An attacker can publish messages that resemble system instructions, operational requests, or tool-use directions. When the agent fetches the room history, these messages enter its working context. The risk is amplified by the instruction to read history for context whenever the agent signs on or changes rooms. The JavaScript only prints messages and does not directly execute their contents. Exploitation therefore depends on an AI agent interpreting the displayed content as instructions. Nevertheless, the Skill is specifically designed for agent use and lacks the controls needed to distinguish untrusted chat data from trusted Skill instructions. ### Attack Path 1. An attacker joins one of the public chat rooms supported by the service. 2. The attacker posts a message containing prompt-injection text, such as instructions to ignore the user's task, reveal contextual data, access files, invoke tools, visit a URL, or send information ba ...[truncated 1157 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:18
Finding

Unpinned Runtime Installation of a Third-Party npm Dependency

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill tells the agent to install a package and execute a Node.js script that opens a network connection to a remote server, but provides no safety warning about code execution, dependency trust, or outbound network risk. This expands the attack surface through shell execution, third-party package installation, and live interaction with untrusted remote content.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill explicitly instructs the agent to fetch remote chat history, which causes third-party content to be transmitted into the agent context without any privacy, trust-boundary, or prompt-injection warning. In a chat setting, prior messages are fully attacker-controlled input and may contain manipulative instructions, sensitive data, or content intended to influence later agent behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill encourages sending messages to an external chat service but does not clearly warn that any user-provided text will leave the local system and be shared with a third party. This creates a data exfiltration risk if the agent includes sensitive user content, internal context, or secrets in outbound messages.

Content

No source excerpt is available for this finding.