Back to skill

Security audit

Ultimate Flashcards and Podcast Tutor

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its study-tool purpose, but it sends a sensitive EchoDecks API key to a hardcoded domain that is not the same domain documented for obtaining the key.

Review this before installing. Only use it if you trust the EchoDecks provider and are comfortable with your API key, deck/card content, submitted text, review activity, podcast requests, and account metadata being sent to the configured remote API. Confirm that echodecks.com is an official EchoDecks API host for keys obtained from echodecks.app, and consider using a revocable, least-privilege key if EchoDecks supports one.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (3)

T09 · Insecure Skill Coding Practices

Warning
Location
echodecks_client.py:8
Finding

API Key Is Sent to a Domain Different from the Documented Service Domain

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
echodecks_client.py:21
Finding

Unencoded User-Controlled Values Are Concatenated into API Query Strings

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
echodecks_client.py:34
Finding

Outbound HTTP Requests Have No Timeout

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (7)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding

The skill declares access to an API key and describes API-backed wrappers, but it does not declare an explicit tool scope such as permissions or allowed-tools. That weakens containment and reviewability, making it easier for a skill with environment and network capabilities to access sensitive data or perform external actions beyond what a user would reasonably expect.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill presents deck management and AI generation features without clearly warning that user study content, deck text, and related metadata may be transmitted to an external service. Users may provide private notes or educational content under the assumption it stays local, creating confidentiality and consent risks.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The client sends request parameters and JSON payloads, including user-supplied text and deck/card data, to the remote EchoDecks API via requests.get/post/put/delete. Although the command names imply API usage, there is no visible warning, comment, or docstring in the code that user content may be transmitted to an external service, especially for generation features that may send free-form text.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
80% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · echodecks_client.py (reported line 38)May include surrounding context.

python
if method == "GET":
            response = requests.get(url, headers=headers)
        elif method == "POST":
            response = requests.post(url, headers=headers, json=data)
        elif method == "PUT":
            response = requests.put(url, headers=headers, json=data)
        elif method == "DELETE":

External Transmission

Medium
Category
Data Exfiltration
Confidence
80% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · echodecks_client.py (reported line 40)May include surrounding context.

python
elif method == "POST":
            response = requests.post(url, headers=headers, json=data)
        elif method == "PUT":
            response = requests.put(url, headers=headers, json=data)
        elif method == "DELETE":
            response = requests.delete(url, headers=headers)
        else:

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill notes per-action credit costs in individual tool descriptions, but it does not provide a prominent user warning that generation features consume paid account resources. This can lead to unexpected charges or depletion of limited credits if a user triggers generation without understanding the account impact.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

This code accesses the sensitive environment variable ECHODECKS_API_KEY to authenticate outbound API requests, but there is no comment, docstring, or other user-facing warning explaining that credentials will be read from the environment. Under the code-file criteria, sensitive credential access should have some visible disclosure unless already documented elsewhere in the skill materials.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.