Back to skill

Security audit

agent-canary

Security checks across malware telemetry and agentic risk

Overview

This defensive canary skill is not malicious, but it needs Review because it plants credential-shaped files in hard-coded home/workspace paths and installs recurring monitoring.

Install only if you intentionally want decoy secret files and recurring monitoring. Before deploying, verify the target paths, add the canary files to ignore rules as needed, and confirm you can remove the cron job and remaining incident log during cleanup.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (7)

Lp3

Medium
Category
MCP Least Privilege
Confidence
98% confidence
Finding
The skill instructs the agent to run shell commands, create and delete files in the workspace and user home, and manage a recurring cron job, yet it declares no corresponding permissions. That mismatch reduces transparency and prevents users or policy systems from accurately understanding the skill's capabilities before activation.

Missing User Warnings

Low
Confidence
86% confidence
Finding
The README explicitly says the skill plants realistic-looking fake credentials in strategic workspace locations such as .env-like files and memory/config paths. Even though the credentials are fake and intended for defense, placing credential-shaped data where other tools or automations may ingest, sync, validate, or alert on them can disrupt workflows, trigger false positives, or cause accidental propagation into logs, backups, repos, or external systems.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The README describes the skill as defensive, but at the point of introduction it does not clearly warn users that activation will write decoy credential-like files into the workspace and enable recurring cron-based monitoring. Even if the behavior is intended, insufficient up-front disclosure can lead to unexpected file creation, background execution, and confusion during incident response or audits.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The deploy flow writes decoy credential files into the workspace and user-specific directories, but the skill description does not prominently warn users about these side effects. Hidden filesystem changes can confuse users, contaminate repositories, and create accidental disclosure or operational issues if the decoy files are committed, scanned, or acted on by other tools.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The skill sets up a recurring cron-based monitoring job but does not clearly disclose that persistent background automation will be installed. Undisclosed scheduled tasks are risky because they continue executing after the initial interaction, may surprise users, and expand the attack surface through repeated automated shell execution.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The script writes multiple decoy credential files directly into the user's workspace and memory directory without any confirmation, dry-run mode, or explicit warning at the point of action. Even though the credentials are intended as canaries, silently creating realistic secret files can alter agent behavior, confuse users, trigger accidental handling/exfiltration by other tools, and create operational risk in a sensitive workspace.

Unvalidated Output Injection

High
Category
Output Handling
Content
if not os.path.isfile(logfile):
                continue
            try:
                result = subprocess.run(
                    ["grep", "-l", token_short, logfile],
                    capture_output=True, text=True, timeout=5
                )
Confidence
75% confidence
Finding
subprocess.run( ["grep", "-l", token_short, logfile], capture_output

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

Detected: suspicious.exposed_secret_literal

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
scripts/plant_canaries.py:34