Back to skill

Security audit

mirna-target-tools

Security checks for vulnerabilities and agentic risk

Overview

The skill is a real miRNA analysis toolkit, but its dependency installer can make system-wide changes and build downloaded third-party code without strong upfront warnings or integrity checks.

Review and preferably run the analysis in a conda/container environment. Avoid running scripts/install_dependencies.sh on a sensitive host unless you accept sudo package changes and an unverified source build; preinstall miRanda/RNAhybrid/TargetScan from trusted package managers when possible. Do not submit unpublished or sensitive gene lists/sequences to the online annotation/enrichment features unless third-party API disclosure is acceptable.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (47)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

If the real behavior centers on environment/dependency installation rather than the documented biological analysis, the skill can cause users or agents to execute shell commands under false expectations. That mismatch matters because setup actions often have broader filesystem and network impact than the user intended to authorize.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

If the real behavior centers on environment/dependency installation rather than the documented biological analysis, the skill can cause users or agents to execute shell commands under false expectations. That mismatch matters because setup actions often have broader filesystem and network impact than the user intended to authorize.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

If the real behavior centers on environment/dependency installation rather than the documented biological analysis, the skill can cause users or agents to execute shell commands under false expectations. That mismatch matters because setup actions often have broader filesystem and network impact than the user intended to authorize.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

If the real behavior centers on environment/dependency installation rather than the documented biological analysis, the skill can cause users or agents to execute shell commands under false expectations. That mismatch matters because setup actions often have broader filesystem and network impact than the user intended to authorize.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

If the real behavior centers on environment/dependency installation rather than the documented biological analysis, the skill can cause users or agents to execute shell commands under false expectations. That mismatch matters because setup actions often have broader filesystem and network impact than the user intended to authorize.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

If the real behavior centers on environment/dependency installation rather than the documented biological analysis, the skill can cause users or agents to execute shell commands under false expectations. That mismatch matters because setup actions often have broader filesystem and network impact than the user intended to authorize.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

If the real behavior centers on environment/dependency installation rather than the documented biological analysis, the skill can cause users or agents to execute shell commands under false expectations. That mismatch matters because setup actions often have broader filesystem and network impact than the user intended to authorize.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

If the real behavior centers on environment/dependency installation rather than the documented biological analysis, the skill can cause users or agents to execute shell commands under false expectations. That mismatch matters because setup actions often have broader filesystem and network impact than the user intended to authorize.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

If the real behavior centers on environment/dependency installation rather than the documented biological analysis, the skill can cause users or agents to execute shell commands under false expectations. That mismatch matters because setup actions often have broader filesystem and network impact than the user intended to authorize.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 140)May include surrounding context.

md
Script: `scripts/predict_targets_genome.py`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 172)May include surrounding context.

md
Script: `scripts/predict_targets_genome.py`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 192)May include surrounding context.

md
Script: `scripts/predict_targets_genome.py`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 310)May include surrounding context.

md
Script: `scripts/predict_targets_genome.py`

Chaining Abuse

High
Category
Tool Misuse
Confidence
75% confidence
Finding

Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Content

Scanner excerpt · scripts/install_r_deps.sh (reported line 32)May include surrounding context.

sh
cat <<'EOF'
No conda/mamba found. Install R with your system package manager, e.g.:

  Ubuntu/Debian : sudo apt-get update && sudo apt-get install -y r-base r-base-dev
  macOS (brew)  : brew install r
  Fedora        : sudo dnf install -y R R-devel

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding

The skill advertises and documents capabilities that involve shell execution, file read/write, and network access, but it does not declare any explicit tool scope such as permissions or allowed-tools. In an agent setting, this weakens least-privilege controls and makes it harder for reviewers or runtime policy to constrain potentially risky operations like package installation, downloads, and writing to cache or output paths.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill explicitly describes automatic downloads and use of external services such as miRBase, RNAcentral, MyGene.info, g:Profiler, and Ensembl, but it does not warn users that submitted miRNA names, sequences, or gene lists may be transmitted off-host. In research and biomedical settings, even seemingly non-PII inputs can be sensitive or embargoed, so silent outbound transmission creates a real privacy and compliance risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The workflow explicitly states that gene annotation and enrichment use MyGene.info and g:Profiler online APIs, but it does not clearly warn users that submitted gene lists and species selections are transmitted to external services. In a bioinformatics setting, input datasets may be unpublished or sensitive, so omitting an explicit disclosure can lead to unintended data exposure.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The manifest advertises built-in support for human, mouse, rat, sheep, goat, cow, pig, and chicken, but this script's species map only supports human, mouse, rat, sheep, goat, and cow. In addition, the module docstring and CLI help repeat the narrower set, so the implemented behavior does not fully match the stated built-in species coverage.

Content

No source excerpt is available for this finding.

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · scripts/check_env.py (reported line 37)May include surrounding context.

python
if shutil.which('Rscript') is None:
        return False, 'Rscript not found on PATH'
    try:
        proc = subprocess.run(['Rscript', '-e', 'cat(R.version.string)'],
                              capture_output=True, text=True, timeout=180)
        version = proc.stdout.strip() or 'version unknown'
    except Exception as exc:

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · scripts/check_env.py (reported line 44)May include surrounding context.

python
return False, 'Rscript failed: %s' % exc
    check = ' && '.join('requireNamespace("%s", quietly=TRUE)' % p for p in R_PLOT_PKGS)
    try:
        proc = subprocess.run(['Rscript', '-e', 'cat(%s)' % check],
                              capture_output=True, text=True, timeout=240)
        ok = proc.stdout.strip().upper().startswith('TRUE')
    except Exception:

Dynamic import via __import__()

Medium
Category
Dangerous Code Execution
Confidence
75% confidence
Finding

Dynamic import() can load arbitrary modules at runtime, bypassing static analysis and potentially importing malicious code.

Content

Scanner excerpt · scripts/check_env.py (reported line 69)May include surrounding context.

python
print("\nPython packages:")
    for pkg in required_packages:
        try:
            __import__(pkg)
            print("  OK       %s (required)" % pkg)
        except ImportError:
            print("  MISSING  %s (required)" % pkg)

Dynamic import via __import__()

Medium
Category
Dangerous Code Execution
Confidence
75% confidence
Finding

Dynamic import() can load arbitrary modules at runtime, bypassing static analysis and potentially importing malicious code.

Content

Scanner excerpt · scripts/check_env.py (reported line 76)May include surrounding context.

python
print("\nPython packages:")
    for pkg in required_packages:
        try:
            __import__(pkg)
            print("  OK       %s (required)" % pkg)
        except ImportError:
            print("  MISSING  %s (required)" % pkg)

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
83% confidence
Finding

This subprocess call executes an external Rscript program from PATH and passes user-controlled values such as --outdir and --prefix into another script. Although it does not use shell=True, so classic shell injection is reduced, it still creates a trust boundary issue: a malicious or trojanized Rscript on PATH, or unsafe downstream handling in plot_conservation.R, could lead to arbitrary code execution in the tool's context. In a scientific analysis skill that may run on shared workstations or automation hosts, invoking external interpreters increases the attack surface beyond pure Python processing.

Content

Scanner excerpt · scripts/conservation_analysis.py (reported line 551)May include surrounding context.

python
'--outdir', outdir, '--prefix', prefix,
           '--seed-start', str(seed_start), '--seed-end', str(seed_end)]
    print("  drawing figures with R (ggplot2) ...")
    return subprocess.call(cmd) == 0


def run_conservation(records, names, seed_start, seed_end, outdir, prefix,

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script immediately performs privileged package-management actions with sudo, modifying the host system, but does not explicitly warn the user that it requires elevated privileges and will make system-wide changes. This increases the chance of unsafe execution in environments where users may not expect host modification or may run the script with excessive trust.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The script fetches a source archive from the network, extracts it, builds it, and installs it without any integrity verification or explicit warning that it is executing third-party code on the host. If the upstream repository, release artifact, or transport path were compromised, this could lead to arbitrary code execution during configure/make/install.

Content

No source excerpt is available for this finding.