Back to skill

Security audit

Anki Batch Cards

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward Anki batch-import helper that reads user-prepared vocabulary data and adds cards through local AnkiConnect.

Before installing, understand that this can add cards to your local Anki collection. Use the dry-run option first for large imports, confirm the target deck/model, and keep AnkiConnect limited to local access.

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
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The core purpose mostly matches: the script does batch-add cards to Anki through AnkiConnect and supports Spanish/Chinese-oriented field defaults. However, the description materially overstates the behavior by claiming automatic translation and example sentence support in the sense of generating or fetching them. The code only accepts translation/example content if already present in the input file and passes it through to Anki. There are no translation APIs, NLP generation, or other mechanisms to automatically produce meanings or examples. No unrelated or suspicious extra capabilities are present beyond local file reading and localhost AnkiConnect access.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill documents local file handling and localhost network access to AnkiConnect, but it does not declare any explicit tool scope or permissions boundary. In an agent setting, missing scope declarations can cause the runtime to grant broader capabilities than reviewers or users expect, increasing the chance of unintended file reads or local service interaction.

Content

No source excerpt is available for this finding.

Internal Network Request

Medium
Category
Server-Side Request Forgery
Confidence
70% confidence
Finding

Code issues a request to a loopback, link-local, or private-range host. This can reach internal services not meant to be exposed and is a common SSRF pivot.

Content

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

List available decks:

bash
python3 -c "import urllib.request, json; print(json.loads(urllib.request.urlopen(urllib.request.Request('http://127.0.0.1:8765', json.dumps({'action':'deckNames','version':6}).encode())).read())['result'])"

List model fields:

Internal Network Request

Medium
Category
Server-Side Request Forgery
Confidence
70% confidence
Finding

Code issues a request to a loopback, link-local, or private-range host. This can reach internal services not meant to be exposed and is a common SSRF pivot.

Content

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

List available decks:

bash
python3 -c "import urllib.request, json; print(json.loads(urllib.request.urlopen(urllib.request.Request('http://127.0.0.1:8765', json.dumps({'action':'deckNames','version':6}).encode())).read())['result'])"

List model fields: