Trust Assessment
paper-recommendation received a trust score of 10/100, placing it in the Untrusted category. This skill has significant security findings that require attention before use in production.
SkillShield's automated analysis identified 19 findings: 8 critical, 9 high, 2 medium, and 0 low severity. Key findings include Network egress to untrusted endpoints, Arbitrary command execution, Missing required field: name.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The Manifest Analysis layer scored lowest at 0/100, indicating areas for improvement.
Last analyzed on February 12, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings19
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Network egress to untrusted endpoints HTTP request to raw IP address Review all outbound network calls. Remove connections to webhook collectors, paste sites, and raw IP addresses. Legitimate API calls should use well-known service domains. | Manifest | skills/sjf-ecnu/paper-recommendation/scripts/daily_workflow.py:15 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/sjf-ecnu/paper-recommendation/scripts/daily_workflow.py:23 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/sjf-ecnu/paper-recommendation/scripts/daily_workflow.py:48 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/sjf-ecnu/paper-recommendation/scripts/daily_workflow.py:70 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/sjf-ecnu/paper-recommendation/scripts/daily_workflow.py:148 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/sjf-ecnu/paper-recommendation/scripts/fetch_papers.py:43 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/sjf-ecnu/paper-recommendation/scripts/fetch_papers.py:104 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/sjf-ecnu/paper-recommendation/scripts/read_pdf.py:33 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'fetch_papers'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/sjf-ecnu/paper-recommendation/scripts/daily_workflow.py:23 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'spawn_review_subagents'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/sjf-ecnu/paper-recommendation/scripts/daily_workflow.py:48 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'send_to_telegram'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/sjf-ecnu/paper-recommendation/scripts/daily_workflow.py:148 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'generate_briefing'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/sjf-ecnu/paper-recommendation/scripts/daily_workflow.py:70 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'fetch_papers'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/sjf-ecnu/paper-recommendation/scripts/fetch_papers.py:43 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'download_papers'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/sjf-ecnu/paper-recommendation/scripts/fetch_papers.py:104 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'extract_text'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/sjf-ecnu/paper-recommendation/scripts/read_pdf.py:33 | |
| HIGH | Sub-agent prompt injection via untrusted arXiv metadata The skill constructs sub-agent prompts using paper titles, summaries, and author lists fetched directly from arXiv. An attacker could publish a paper on arXiv with a malicious title or abstract designed to inject instructions into the sub-agent LLM. This could cause the sub-agent to deviate from its intended task, potentially exfiltrate information, or perform other unauthorized actions by manipulating its behavior. Implement robust sanitization or a secure prompt templating system. Instead of embedding untrusted external data directly into the instruction part of the prompt, pass it as structured data to the sub-agent. Instruct the sub-agent to process this data separately from its core instructions. Consider using a separate LLM call to summarize or rephrase external content before it's included in a prompt to mitigate adversarial instructions. | LLM | scripts/review_papers.py:40 | |
| HIGH | Sub-agent prompt injection via untrusted arXiv metadata in daily workflow The `daily_workflow.py` script constructs sub-agent tasks using paper titles and URLs fetched directly from arXiv. Similar to `review_papers.py`, an attacker could publish a paper on arXiv with a malicious title designed to inject instructions into the sub-agent LLM. This could cause the sub-agent to deviate from its intended task, potentially exfiltrate information, or perform other unauthorized actions. Implement robust sanitization or a secure prompt templating system. Instead of embedding untrusted external data directly into the instruction part of the prompt, pass it as structured data to the sub-agent. Instruct the sub-agent to process this data separately from its core instructions. Consider using a separate LLM call to summarize or rephrase external content before it's included in a prompt to mitigate adversarial instructions. | LLM | scripts/daily_workflow.py:60 | |
| 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/sjf-ecnu/paper-recommendation/SKILL.md:1 | |
| MEDIUM | Suspicious import: urllib.request Import of 'urllib.request' 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/sjf-ecnu/paper-recommendation/scripts/daily_workflow.py:7 |
Scan History
Embed Code
[](https://skillshield.io/report/091d1a6c82dde1e8)
Powered by SkillShield