Back to skill

Security audit

AgentGuard Tech

Security checks for vulnerabilities and agentic risk

Overview

This security skill is purpose-aligned, but it asks to install mutable third-party code, intercept all tool calls, create an external account, and store an API key in ways that need careful review before use.

Only install this after you are comfortable letting a third-party npm package participate in every tool call decision and potentially inspect tool arguments. Prefer a pinned, reviewed SDK version, explicit approval before account creation, clear data-handling terms for `evaluate()`, and protected secret storage before using it in a real agent or project.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Tool Hijacking and SpoofingModifies or replaces tools so legitimate-looking calls execute attacker logic
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
Findings (4)

T08 · Insecure Dependencies

Error
Location
SKILL.md:149
Finding

Runtime Installation of an Unpinned Third-Party Package

Content
View full analysis
{ exec('npm install @the-bot-club/agentguard --save', { cwd: process.cwd() }, (error, stdout, stderr) => { if (error) reject(error); else resolve(stdout); }); }); } ``` ### Technical Analysis The skill instructs the agent to install `@the-bot-club/agentguard` from the npm registry at runtime. The dependency is not pinned to an exact version, and the project contains no package lockfile, integrity digest, vendored source, or other mechanism that would ensure the installed package matches the code that was originally reviewed. The package installation may also execute npm lifecycle scripts with the permissions of the agent process. Because registry contents can change independently of this skill, the effective code executed by the skill is mutable after review. This finding does not establish that the named package is itself malicious. The vulnerability is that the skill places an unpinned and unaudited dependency directly into a security-sensitive execution path. ### Attack Path 1. A user invokes the skill to secure an agent. 2. The skill runs `npm install @the-bot-club/agentguard --save` in the current working directory. 3. npm resolves the package version available from the configured registry at execution time. 4. A compromised package version, registry response, maintainer account, or transitive dependency supplies attacker-controlled code. 5. npm lifecycle scripts or subsequently imported package code execute under the agent process identity. 6. The malicious dependency can access files, environment variables, network resources, and other capabilities available to that process. ### Impact Assessment Successful exploitation could provide arbitr ...[truncated 452 chars]
Remediation
View remediation

T07 · Tool Hijacking and Spoofing

Error
Location
SKILL.md:161
Finding

Global Tool Wrapping Delegates Sensitive Calls to an Unverified Dependency

Content
View full analysis
({ ...tool, execute: async (...args) => { // Security check before execution const result = await evaluate(tool.name, args, { strict: true, timeout: 5000 }); if (!result.allowed) { throw new Error(`Security blocked: ${result.reason}`); } return tool.execute(...args); } })); } ``` ### Technical Analysis The function replaces the `execute` method of every registered tool with a wrapper controlled by the installed dependency. Each invocation passes the tool name and complete argument list to `evaluate()` before calling the original executor. Tool arguments can contain shell commands, file paths, file contents, credentials, API requests, personal data, or other sensitive information. The audited project does not include the implementation of `evaluate()`, so it cannot establish whether evaluation is local, whether arguments are transmitted over the network, how they are logged, or how long they are retained. The dependency also obtains control over whether every tool call is permitted. The wrapper therefore creates a global interception and decision point rather than applying narrowly scoped validation to explicitly selected dangerous tools. ### Attack Path 1. The skill installs and imports the third-party AgentGuard dependency. 2. The skill maps over all registered tools and replaces each exposed `execute` method. 3. The agent invokes a legitimate tool with potentially sensitive arguments. 4. The wrapper forwards the tool name and full argument list to the dependency's `evaluate()` function. 5. If the dependency is compromised or behaves unexpectedly, i ...[truncated 851 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:181
Finding

External Account Creation Without a Dedicated Consent Boundary

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:137
Finding

API Key Exposed Through General Configuration and Plaintext Storage

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The description markets the skill as making the agent safe but omits key disclosures that it installs a third-party package, uses the network, may create an external account, and changes local files. In a security-themed skill, this omission is especially dangerous because users are more likely to trust and approve it without scrutinizing the side effects.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrases are broad and action-oriented, which increases the chance of accidental activation in normal conversation. Because activation leads to npm installation, network access, account creation, and local modifications, unintended invocation can cause unapproved code execution and external data sharing.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The documentation says that if AgentGuard is already installed, the skill will run reconfiguration instead, and later usage examples describe reading existing config and updating policies. But the implementation immediately returns handleAlreadyInstalled() when isAgentGuardInstalled() is true, with no reconfiguration logic shown.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill claims to persist security configuration and create policy files, but no writeSecurityConfig implementation is provided. This can leave users believing protections were installed and enforced when no durable configuration exists, creating a dangerous false sense of security in a skill explicitly marketed as defensive tooling.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The examples normalize automatic third-party account creation without a clear warning or consent step about signup, data handling, and local credential storage. This is risky because the skill operates in a trust-sensitive security context, so users may unknowingly authorize external registration and secret generation under the assumption it is purely local hardening.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The uninstallation section claims the skill restores original tool functions, implying reversal of the execute-wrapper changes introduced during installation. The actual uninstall function only runs npm uninstall and removes .agentguard/, with no logic to unwrap or restore modified tool handlers.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.