Back to skill

Security audit

Weather Api

Security checks for vulnerabilities and agentic risk

Overview

The skill's weather API behavior is mostly understandable, but it asks for broad filesystem access and tells agents to accept file paths and exports without clear boundaries.

Review this skill before installing. Its weather lookups use a fixed public weather API, but the filesystem permission and file-path/export instructions are not tightly scoped. Use it only if you are comfortable letting the agent read user-provided project files and create exports, and avoid pointing it at sensitive directories or credential/configuration files.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (2)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
claw.json:7
Finding

Unnecessary Broad Filesystem Permission Violates Least Privilege

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
SKILL.md:72
Finding

External Weather API Requests Have No Timeouts

Content
View full analysis
List[WeatherCondition]: """Get historical weather data.""" url = f"{self.OPEN_METEO_BASE}/archive" params = { 'latitude': latitude, 'longitude': longitude, 'start_date': start_date, 'end_date': end_date, 'hourly': 'temperature_2m,relative_humidity_2m,wind_speed_10m,precipitation' } response = requests.get(url, params=params) ``` ### Technical Analysis Both forecast and historical-data requests call `requests.get` without a connection or response timeout. The Requests library can consequently wait for an unbounded period while establishing a connection or receiving response data. The destination is a fixed HTTPS Open-Meteo host, so this finding does not create an arbitrary request destination or remote code-execution path. It is an availability and resource-management weakness: a stalled endpoint, network disruption, or connection that transmits data indefinitely may block the Skill invocation. ### Attack Path 1. The user invokes forecast or historical weather retrieval. 2. The Skill initiates an HTTPS request to the configured Open-Meteo endpoint. 3. The endpoint, an intermediary, or the network accepts the connection but delays completion. 4. Because no timeout is configured, the request remains blocked. 5. The Agent workflow cannot complete and may continue consuming a worker, connection, or execution slot until an external runtime limit terminates it. Exploitation generally requires influence over network ava ...[truncated 403 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 56)May include surrounding context.

md
"""Client for weather APIs."""

    # Free tier endpoints
    OPEN_METEO_BASE = "https://api.open-meteo.com/v1"

    def __init__(self, api_key: Optional[str] = None):
        self.api_key = api_key

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The instructions broaden the skill from a narrow weather-data retrieval tool into generic predictive modeling, user-supplied file handling, and export workflows driven by another document. That expansion increases the attack surface and can cause the agent to perform actions beyond the declared skill scope, especially when combined with permissive references to SKILL.md methods and user-provided paths.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

Accepting file paths and offering exports without clear safety boundaries can lead users to believe the skill may read from or write to arbitrary locations. In an agent setting, that ambiguity is risky because it can enable unintended file access or creation if downstream implementation follows these instructions too literally.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.