Back to skill

Security audit

Volcano Plot Script

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent local volcano-plot generator with minor documentation and dependency-hygiene issues, but no evidence of hidden data access, exfiltration, persistence, or destructive behavior.

Install only in an environment where you are comfortable running local Python plotting code on user-selected DEG files. Use a virtual environment, review or pin the dependencies if reproducibility matters, and ignore the bad audit example: --input should be a real CSV/TSV path, not free text.

Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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
Findings (7)

Intent-Code Divergence

Medium
Confidence
91% confidence
Finding
The audit-ready command passes a free-form clinical-style sentence to --input even though the skill later defines --input as a DEG CSV/TSV path. This contradiction increases the chance that operators run the script with invalid data, exercise unintended parsing paths, or trust a validation example that does not reflect the real input model.

Vague Triggers

Medium
Confidence
84% confidence
Finding
The top-level trigger description is broad enough to match generic data-visualization or analysis requests, which can cause the skill to activate outside its intended volcano-plot scope. Over-broad activation increases the risk of inappropriate script execution, mishandling unrelated files, or producing misleading outputs under the guise of a specialized skill.

Vague Triggers

Medium
Confidence
86% confidence
Finding
The 'When to Use' conditions include generic phrases like 'data analysis tasks' and 'documented fallback path,' which are not specific to volcano plots and can expand activation well beyond the real implementation. In an agent setting, ambiguous invocation criteria can lead to wrong-tool selection and unnecessary execution of local scripts with file access.

Unpinned Dependencies

Low
Category
Supply Chain
Content
pandas
matplotlib
seaborn
numpy
Confidence
96% confidence
Finding
The dependency list leaves pandas unpinned, which makes builds non-reproducible and can silently pull in newly introduced vulnerable or breaking versions over time. In a code-generating bioinformatics skill this is a supply-chain hygiene issue rather than an immediately exploitable flaw, but it still increases operational risk.

Unpinned Dependencies

Low
Category
Supply Chain
Content
pandas
matplotlib
seaborn
numpy
Confidence
96% confidence
Finding
matplotlib is unpinned, so installations may resolve to different versions across environments, reducing reproducibility and increasing exposure to future vulnerable releases or dependency conflicts. This is a supply-chain risk and dependency-management weakness, even though the package itself is common and expected for plotting.

Unpinned Dependencies

Low
Category
Supply Chain
Content
pandas
matplotlib
seaborn
numpy
Confidence
96% confidence
Finding
seaborn is specified without a version, allowing uncontrolled dependency resolution and making the environment susceptible to unexpected upstream changes. For a visualization-focused skill this mainly affects reproducibility and can indirectly increase supply-chain exposure.

Unpinned Dependencies

Low
Category
Supply Chain
Content
pandas
matplotlib
seaborn
numpy
Confidence
97% confidence
Finding
numpy is unpinned, which creates a non-deterministic installation path and raises the chance of consuming a vulnerable or incompatible release. Because numpy is a foundational scientific package, unmanaged version drift can have broad downstream effects in the environment.

Static analysis

No suspicious patterns detected.