Back to skill

Security audit

Mystilink Tarot

Security checks for vulnerabilities and agentic risk

Overview

This tarot skill is a coherent local card-draw helper with optional documented Wiki lookups, and I found no hidden credential access, persistence, or destructive behavior.

Safe to install from the inspected artifacts. Before using optional Wiki lookups for sensitive readings, be aware that the lookup service may receive card-related query data and locale; keep private health, legal, financial, or relationship details out of remote lookups unless you are comfortable sharing them.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (11)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · .gitignore (reported line 18)May include surrounding context.

text
.idea/
.vscode/
*.log
.env
.env.*
!*.env.example

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/draw.mjs --spread three-card [--seed N]

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The README explicitly documents optional external Wiki API calls but does not disclose that user-derived tarot content, such as card names and potentially sensitive question context, may be transmitted to a third-party service. In a divination skill, users may share personal relationship, health, or financial concerns, so the lack of a privacy warning can lead to unintentional disclosure even if the network behavior is expected by the implementation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

This markdown file includes a natural-language locale policy that falls back to en when no locale is provided. That can force English content for users without explicitly offering a language choice at the point of use, which matches the locale-policy concern in SQP-3.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The README documents optional Wiki API calls using user-related tarot query/card data but does not explicitly warn that this information may be transmitted to an external service. In a tarot skill, prompts and interpretations can contain sensitive personal context, so undocumented network disclosure creates a real, albeit low-severity, privacy risk.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The examples and limits section specify locale=en and state that omitting the Wiki locale defaults to English. This imposes a language choice by default rather than offering a user-selected locale or documenting an explicit opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The README states that if the Wiki locale is omitted, it defaults to en. This is a natural-language locale policy constraint that imposes a specific language choice without indicating user selection or opt-in.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

This is a markdown file, so SQP-2 applies to omitted warnings about behaviors affecting privacy or data handling. The workflow shows optional HTTP requests to an external service, but the README does not clearly warn users that using the Wiki feature may send derived user/session data off-host.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

SQP-3 applies to all file types and covers language or locale policy violations. The documented behavior forces en when locale is not supplied, and the file does not indicate user choice or opt-in for that default.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

Lines L5-L6 specify API requests with locale=en, which imposes a specific language/locale in the skill reference. The policy forbids forcing a specific language without user opt-in, and this file does not document any choice or justification for the English-only setting.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The script emits a natural-language/API hint string with locale=en, which forces English as the implied locale in its output. This is a locale preference embedded in the skill behavior without any user choice or documented justification in the file.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.