Trust Assessment
flashcards-podcasts-master received a trust score of 72/100, placing it in the Caution category. This skill has some security considerations that users should review before deployment.
SkillShield's automated analysis identified 3 findings: 0 critical, 1 high, 2 medium, and 0 low severity. Key findings include Missing required field: name, Suspicious import: requests, Unsafe URL parameter construction allows injection.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. All layers scored 70 or above, reflecting consistent security practices.
Last analyzed on February 13, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings3
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| HIGH | Unsafe URL parameter construction allows injection The `make_request` function manually appends query parameters to the URL string using f-strings. This bypasses the `requests` library's automatic URL encoding for parameters, allowing an attacker to inject arbitrary query parameters into the API request by providing specially crafted input (e.g., `id=123&malicious_param=value`). This could lead to unintended API behavior, data exfiltration if the API reflects sensitive information based on injected parameters, or other forms of API manipulation on the backend. Modify the `make_request` function to pass the `params` dictionary directly to the `requests` library's `get` method. This ensures proper URL encoding of parameter values before the request is sent. Example fix for GET requests: ```python def make_request(method, resource, action=None, params=None, data=None): # ... (headers and base URL construction) # Remove the manual parameter appending loop: # if params: # for key, value in params.items(): # if value is not None: # url += f"&{key}={value}" try: if method == "GET": response = requests.get(url, headers=headers, params=params) # Pass params here elif method == "POST": response = requests.post(url, headers=headers, json=data) # ... (other methods) ``` | LLM | scripts/echodecks_client.py:30 | |
| MEDIUM | Missing required field: name The 'name' field is required for claude_code skills but is missing from frontmatter. Add a 'name' field to the SKILL.md frontmatter. | Static | skills/drgeld/flashcards-podcasts-master/SKILL.md:1 | |
| MEDIUM | Suspicious import: requests Import of 'requests' detected. This module provides network or low-level system access. Verify this import is necessary. Network and system modules in skill code may indicate data exfiltration. | Static | skills/drgeld/flashcards-podcasts-master/scripts/echodecks_client.py:6 |
Scan History
Embed Code
[](https://skillshield.io/report/70f618bbb2c71d38)
Powered by SkillShield