modal
8 findings (3 high, 5 medium), mainly command injection, data exfiltration. Most recent scan 2026-10-21.
Second scanner: NVIDIA SkillSpector
Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.
What this skill does
Modal is a serverless cloud platform for running Python on demand, including on-demand GPUs. Use when deploying or serving AI/ML models, running GPU-accelerated workloads (training, fine-tuning, inference), serving web endpoints, scheduling batch jobs, or scaling Python code to cloud containers with the Modal SDK.
- Package
- 13 files, 96 KB
- SKILL.md
- 2073 words, 12+ sections
- Code
- None. Instructions only.
- License
- Apache-2.0
- Compatibility
- Requires Python 3.10-3.14 and modal 1.6.0. Cloud execution needs a Modal account, authentication and network access; GPU use needs a payment method. Workload dependencies belong in their container Images.
SKILL.md covers: Modal · Overview · When to Use This Skill · Installation and Authentication · Install · Authenticate · Core Concepts · App and Functions · Container Images · GPU Compute · Multiple GPUs · GPU fallback chain
Findings
HIGH Python code block uses eval/exec Command Injectionbehavioral
Code block in SKILL.md at line 352 contains potentially dangerous Python code.
SKILL.md:352
proc = sb.exec("python", "/tmp/job.py")HIGH Python code block uses eval/exec Command Injectionbehavioral
Code block in references/api_reference.md at line 137 contains potentially dangerous Python code.
references/api_reference.md:137
proc = sb.exec("python", "-c", "print(2 ** 10)")HIGH Python code block uses eval/exec Command Injectionbehavioral
Code block in references/functions.md at line 101 contains potentially dangerous Python code.
references/functions.md:101
self.model.eval() # PyTorch inference mode — not Python's built-in eval()MEDIUM Python code block executes shell commands Command Injectionbehavioral
Code block in references/gpu.md at line 161 contains potentially dangerous Python code.
references/gpu.md:161
subprocess.run([MEDIUM Python code block executes shell commands Command Injectionbehavioral
Code block in references/gpu.md at line 181 contains potentially dangerous Python code.
references/gpu.md:181
subprocess.run(["python", "train_script.py"], check=True)MEDIUM Python code block executes shell commands Command Injectionbehavioral
Code block in references/gpu.md at line 192 contains potentially dangerous Python code.
references/gpu.md:192
subprocess.run([MEDIUM Python code block sends HTTP POST request Data Exfiltrationbehavioral
Code block in references/scheduled-jobs.md at line 150 contains potentially dangerous Python code.
references/scheduled-jobs.md:150
response = requests.post(os.environ["SLACK_URL"], json={"text": f"Alert: {status}"}, timeout=30)MEDIUM Python code block executes shell commands Command Injectionbehavioral
Code block in references/web-endpoints.md at line 168 contains potentially dangerous Python code.
references/web-endpoints.md:168
subprocess.Popen([What is in the package
| File | Kind | Size |
|---|---|---|
SKILL.md | doc | 18 KB |
references/api_reference.md | doc | 8.5 KB |
references/examples.md | doc | 10 KB |
references/functions.md | doc | 8.3 KB |
references/getting-started.md | doc | 4.7 KB |
references/gpu.md | doc | 6.5 KB |
references/images.md | doc | 7.3 KB |
references/resources.md | doc | 3.2 KB |
references/scaling.md | doc | 6.5 KB |
references/scheduled-jobs.md | doc | 4.3 KB |
references/secrets.md | doc | 3.9 KB |
references/volumes.md | doc | 6.8 KB |
references/web-endpoints.md | doc | 8.2 KB |
External hosts referenced
modal.com arxiv.org github.com docs.pytorch.org docs.vllm.ai doi.org export.arxiv.org huggingface.co sbert.net
Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.
Environment variables referenced
GITHUB_TOKEN HF_TOKEN MODAL_TOKEN_ID MODAL_TOKEN_SECRET AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY OPENAI_API_KEY SLACK_URL WANDB_API_KEY
Package contents recorded 2026-10-22 at commit 593377bb0487. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.
What we checked
- Static analyzer. Pattern rules over SKILL.md and bundled files: known-bad commands, exfiltration URLs, secrets, obfuscation.
- Bytecode analyzer.
- Pipeline analyzer.
- Correlation analyzer.
- Behavioral analyzer. Checks what the skill asks the agent to do against what its description claims it does.
- Trigger analyzer. Looks for instructions that fire on conditions the user did not ask for.
What we did not check
- Runtime behaviour. The skill was not executed; findings come from reading its files.
- Anything fetched at install or run time, including remote scripts, package dependencies, and URLs the skill tells the agent to open.
- Content the analyzers cannot read: images, binaries, and some non-English text.
- Known scanner bypass classes. See the methodology and limitations page.
Sources
- Repository: https://github.com/K-Dense-AI/scientific-agent-skills
- Raw scan result: skills-modal-scan.json
- Badge for your README:
 - Request a re-scan