Back to skill

Security audit

Runbook Generator

Security checks across malware telemetry and agentic risk

Overview

This is a local runbook generator that reads project configuration files and produces documentation, with sensitive metadata risks users should manage before sharing output.

Install only if you are comfortable letting it read the project directory you point it at. Review generated Markdown or JSON before sharing or committing it, especially because it may include environment variable names, absolute paths, service names, ports, scripts, and operational structure even when .env values are masked.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (9)

Lp3

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding
The skill advertises and instructs use of local file reads, file writes, and shell execution via `python3 scripts/generate_runbook.py`, but it does not declare permissions or safety boundaries. In a runbook-generation context, these capabilities can expose sensitive infrastructure data from scanned files and create or overwrite output files without clear user consent or sandboxing expectations.

Description-Behavior Mismatch

Medium
Confidence
96% confidence
Finding
The script explicitly scans a real `.env` file and then incorporates discovered variables into generated runbook content. Even though values are partially masked, variable names, presence/absence, boolean settings, and examples can reveal secrets architecture, enabled features, third-party services, and operational dependencies; this exceeds a documentation generator's minimum need and creates an information disclosure channel.

Vague Triggers

Medium
Confidence
84% confidence
Finding
The trigger phrases are broad and overlap with ordinary documentation requests like 'deployment guide' or 'how to deploy,' increasing the chance the skill activates in contexts where the user did not intend project scanning. In this skill, unintended activation is more dangerous because the described workflow involves inspecting operational files that may contain sensitive deployment details.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill says it scans `.env`, compose files, unit files, and config files but does not warn that these commonly contain secrets, internal endpoints, tokens, usernames, and operational procedures. A generated runbook could inadvertently surface or persist sensitive data in output documents, creating credential leakage and internal recon risk.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The script exports metadata derived from a real `.env` file without a clear user-facing warning that the generated runbook may contain sensitive configuration details. In a documentation context, users may share the output broadly, turning a local scan into an unintended disclosure of environment structure and secret-related information.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The JSON output includes the full `scanned` source data structure, which may expose paths, environment variable metadata, service topology, commands, and infrastructure configuration in a machine-readable format. Structured export makes exfiltration and downstream reuse easier than markdown and can leak more detail than users expect from a runbook generator.

Env Variable Harvesting

High
Category
Data Exfiltration
Content
has_npm = any(s["type"] == "package_json" for s in scanned)
    has_nginx = any(s["type"] == "nginx" for s in scanned)

    # Collect all env vars
    all_env = {}
    for s in scanned:
        if s["type"] == "env_file":
Confidence
98% confidence
Finding
Collect all env vars

Credential Access

High
Category
Privilege Escalation
Content
if f.is_file() and "[Unit]" in f.read_text()[:200]:
            scanned.append(scan_systemd_unit(f))

    # Scan for .env (not .example)
    env_file = root / ".env"
    if env_file.exists():
        scanned.append(scan_env_file(env_file))
Confidence
97% confidence
Finding
.env

Credential Access

High
Category
Privilege Escalation
Content
scanned.append(scan_systemd_unit(f))

    # Scan for .env (not .example)
    env_file = root / ".env"
    if env_file.exists():
        scanned.append(scan_env_file(env_file))
Confidence
93% confidence
Finding
.env"

VirusTotal

65/65 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.