Back to skill

Security audit

web info skill

Security checks for vulnerabilities and agentic risk

Overview

This web-page info skill is coherent, but it needs Review because it can fetch arbitrary HTTP(S) URLs from the agent host while claiming public-only and robots.txt protections it does not implement.

Install only if you are comfortable with a skill that can make outbound HTTP(S) requests to any URL the agent is given from the agent's own network environment. Use egress restrictions or avoid untrusted URLs until the skill blocks private/internal destinations, validates redirects, documents its true behavior, and uses a real JSON serializer.

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 (3)

T09 · Insecure Skill Coding Practices

Error
Location
web-info.sh:47
Finding

Arbitrary URL Fetching Enables Server-Side Request Forgery

Content
View full analysis
/dev/null) ``` ### Technical Analysis The URL validation only verifies that the supplied string begins with `http://` or `https://`. It does not parse or canonicalize the URL, restrict destination ports, resolve and validate the destination address, or reject loopback, private, link-local, reserved, and cloud metadata address ranges. The `-L` option instructs `curl` to follow redirects. Consequently, validating only the initial URL would remain insufficient even if initial-host validation were added: a public endpoint could redirect the request to an internal destination. Every redirect target must be independently validated. The request originates from the host running the skill and therefore has access to any HTTP(S) endpoint reachable from that environment, rather than only endpoints reachable by the caller. ### Attack Path 1. An attacker or untrusted caller supplies a URL such as a loopback address, an RFC1918 address, an internal hostname, or a public endpoint that redirects to one. 2. The argument parser accepts the URL because it starts with `http://` or `https://`. 3. `curl -L` issues the request from the Agent host and follows any redirects without destination validation. 4. The script parses the response and exposes selected response content, including titles, descriptions, headers, links, and statistics. 5. The attacker uses the results to enumerate internal services or retrieve information from unauthenticated internal endpoints. ### Impact Assessment An attacker can make HTTP(S) requests within the network context of the Agent host. The potential scope includes: - Loopback services bound only to ...[truncated 581 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
SKILL.md:88
Finding

Security Documentation Claims Controls That Are Not Implemented

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
web-info.sh:125
Finding

Untrusted Web Content Is Interpolated into JSON Without Proper Encoding

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • 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 (3)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
84% confidence
Finding

The skill declares a runtime dependency on curl and its documented usage implies shell execution, but it does not define any explicit tool scope such as permissions or allowed-tools. In agent environments, this can let the skill invoke broader shell/network capabilities than users or policy expect, increasing the risk of unintended outbound requests, SSRF against internal resources, or misuse of shell access if the skill is extended or composed with untrusted input.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

This shell script performs an HTTP request to a user-supplied URL via curl, which transmits the user's requested target and system user-agent string to an external server. Although network access is central to the tool's purpose, the file provides no explicit warning or disclosure that running it will contact third-party hosts and may expose request metadata.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The manifest description limits the skill to extracting and displaying title, meta description, headers, and links from web pages. The code also implements image extraction and word counting, which are additional content-analysis capabilities not reflected in the declared description.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.