Back to skill

Security audit

Satori

Security checks for vulnerabilities and agentic risk

Overview

This memory skill can silently store and reuse potentially sensitive conversation details through an external service and mutable CLI package.

Review carefully before installing. This skill is meant to provide long-term memory, but as written it may save and retrieve conversation details without visible confirmation, store business or personal context externally, auto-provision credentials, and run a changing npm package during routine use. Prefer a version that requires explicit opt-in, shows exactly what will be saved, discloses retrieval, blocks sensitive data by default, provides deletion controls, and pins the CLI version.

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)

T08 · Insecure Dependencies

Error
Location
SKILL.md:31
Finding

Unpinned Remote Package Download and Execution Through npx

Content
View full analysis
" ``` **Search for context:** ```bash npx -y @satori-sh/cli@latest search "" ``` ``` A subsequent example also omits an explicit package version: ```bash npx -y @satori-sh/cli search "Flamingo project tech stack" ``` ### Technical Analysis The Skill instructs the Agent to use `npx -y` to download and execute a third-party package without interactive confirmation. The `@latest` tag is mutable, while the command without a version resolves according to the package registry's current metadata. Consequently, the code executed by the Skill can change after the Skill itself has been reviewed. No lockfile, exact version, package integrity value, vendored artifact, or release verification procedure is provided. The `-y` option also suppresses the normal installation confirmation, making remote package retrieval and execution automatic. This creates a supply-chain trust boundary in which compromise of the package publisher, package registry, release pipeline, or a future package version could result in arbitrary code execution under the local Agent user's identity. ### Attack Path 1. An attacker compromises the `@satori-sh/cli` publisher account, release pipeline, or package registry entry. 2. The attacker publishes a malicious version and assigns it to `latest`, or otherwise changes the version resolved by the unversioned command. 3. The Agent follows `SKILL.md` and invokes `npx -y`. 4. `npx` downloads the attacker-controlled package without requesting user confirmation. 5. Package lifecycle code or CLI entry-point code executes with the permissions of the user running the Agent. 6. The malicious code can access resources available to that user before returning plausible CLI output to conc ...[truncated 814 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:7
Finding

Silent External Persistence and Retrieval of Conversation Data Without Explicit Consent

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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (11)

Vague Triggers

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The trigger phrases are broad enough to match common conversational language such as 'save', 'add', or ordinary requests for reminders, causing the skill to activate in many contexts beyond clear user intent. In this skill, overbroad activation is especially dangerous because activation can lead to hidden retrieval and persistence of sensitive user data across sessions.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill advertises automatic credential provisioning and silent persistence/retrieval of user context without a clear upfront consent and privacy notice. This can cause sensitive information to be transmitted to an external service and retained across sessions without meaningful user awareness, creating privacy, compliance, and trust risks.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

The skill executes a remote package via npx using the latest tag, which allows whatever version is current at runtime to run with local user privileges. This creates a supply-chain risk: a compromised publisher account, malicious update, or dependency hijack could execute arbitrary code on the host and exfiltrate local files or credentials.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

This command again runs an unpinned remote package through npx, so the executed code can change between runs without review. In a skill intended for routine use, that turns normal memory searches into a recurring arbitrary-code execution vector on the user's machine.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill tells the agent to silently incorporate retrieved memory into responses and to avoid announcing the lookup. Hidden contextual enrichment can mislead users about the basis for the response and masks cross-session data use, preventing users from spotting incorrect, stale, or privacy-sensitive retrieved facts.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Silently retrieving prior stored context and blending it into answers obscures that cross-session memory is being accessed and may influence decisions. In a memory skill, this is contextually more dangerous because users may reveal or act on stale, incorrect, or sensitive remembered data without realizing the source.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

The proactive search workflow instructs the agent to execute an unpinned npx command during normal conversation startup, increasing the frequency and stealth of remote code execution opportunities. Because it may happen automatically, users may not realize code is being fetched and run from the network.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill instructs proactive persistence of names, preferences, deadlines, project context, and other user details at 'natural breakpoints' without requiring explicit consent each time. This creates a durable cross-session profile of the user or organization and can capture sensitive business or personal information far beyond what the user intended to store.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding

The installation guidance reinforces use of an unpinned package reference, extending the same supply-chain risk to manual remediation steps. A user following the instructions could install or execute a compromised future release with full local access.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This guidance explicitly encourages storing identities, names, roles, and business-related details as long-term memory, but provides no guardrails for consent, data minimization, or sensitive-data handling. In a persistence skill whose purpose is cross-session recall, this increases the chance of retaining personal or confidential information that users may not expect to be stored indefinitely.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The document instructs the agent to save deadlines, milestones, pricing, partnerships, and strategic information without distinguishing public information from confidential internal plans. Because this skill is designed for durable memory across providers and codegen tools, persisting such data can create a lasting confidentiality and privacy risk if retrieved in unrelated contexts or exposed through later prompts.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.