Back to skill

Security audit

Evidence URL Verifier

Security checks for vulnerabilities and agentic risk

Overview

This skill is a small URL-checking guide whose network access matches its stated purpose, but users should treat untrusted evidence URLs carefully.

Install only if you want an agent to verify evidence links. Use it with external evidence URLs you trust enough to fetch, and prefer adding safeguards such as HTTPS-only URLs, blocking private or metadata IP ranges, validating redirects, and limiting downloaded content size.

Vulnerability Patterns
  • 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
  • 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
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:20
Finding
Unrestricted URL Requests Enable Server-Side Request Forgery## Vulnerability Details **File Location**: `SKILL.md`, lines 20–22 and 43–44 **Vulnerability Type**: Server-Side Request Forgery (SSRF) caused by unrestricted URL handling **Risk Level**: Medium ### Vulnerable Code ```powershell try { $response = Invoke-WebRequest -Uri $url -Method Head -TimeoutSec 10 return @{ ``` A second unrestricted request retrieves the response content: ```powershell # Check URL matches claimed content type $response = Invoke-WebRequest -Uri $url ``` ### Technical Analysis The skill instructs the executor to pass an arbitrary `$url` directly to `Invoke-WebRequest`. It does not validate the URL scheme or destination, restrict allowed hosts or ports, resolve and inspect destination IP addresses, block loopback/private/link-local/reserved networks, or safely control redirects. Consequently, an attacker-controlled evidence URL can make the system running the skill issue HEAD and GET requests from its own network context. Redirects may also be used to bypass superficial checks unless every redirect destination is independently validated. The GET request has no documented response-size limit, creating an additional resource-exhaustion concern. ### Attack Path 1. An attacker supplies an evidence URL targeting a loopback, private-network, link-local, cloud metadata, or attacker-controlled redirect endpoint. 2. The verifier assigns that value to `$url` without validating its destination. 3. `Invoke-WebRequest` sends a HEAD request, and the content-verification step may subsequently send a GET request. 4. The request originates from the verifier host and can reach services unavailable to the external attacker. 5. Status codes, content types, error details, and potentially response content are processed by the workflow, enabling internal-service discovery or disclosure. ### Impact Assessment Exploitation does not directly grant operating-system privileges or code execution. It can, ...[truncated 371 chars]
Remediation
## Remediation Suggestions - Allow only explicitly required schemes, preferably `https`. - Use an allowlist of approved evidence hosts where operationally possible. - Reject URLs containing embedded credentials, unexpected ports, malformed hostnames, or unsupported schemes. - Resolve the hostname before connecting and reject loopback, private, link-local, multicast, reserved, and cloud-metadata address ranges for both IPv4 and IPv6. - Prevent DNS rebinding by ensuring the validated address is the address used for the connection. - Disable redirects or validate the scheme, hostname, port, and resolved IP address at every redirect hop. - Explicitly deny known metadata endpoints and internal service domains. - Apply connection, request, and total-operation timeouts to both HEAD and GET requests. - Stream response bodies with strict byte limits rather than loading unrestricted content into memory. - Return only the minimum verification result and avoid exposing response bodies or detailed internal connection errors. - Enforce outbound firewall or proxy rules so application-level validation is backed by network-level controls.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (1)

Vague Triggers

Medium
Confidence
91% confidence
Finding
The trigger section says to use the skill whenever a task claims an evidence artifact, a URL is provided as proof, before marking a task complete, or during audits of past completions. These conditions are fairly broad and do not specify boundaries, explicit trigger phrases, or negative examples, which could cause the skill to activate in routine review contexts beyond the intended scope.

Static analysis

No suspicious patterns detected.