Back to skill

Security audit

免费天气技能免费版

Security checks across malware telemetry and agentic risk

Overview

This is a weather-query skill, but its trigger and authority are broader than its stated weather purpose.

Review this skill before installing. It appears intended for weather lookup and does not show destructive or deceptive behavior, but its trigger wording is too broad for a weather tool and it declares exec/write capabilities. Use it only for weather queries, and be aware that location queries may be sent to wttr.in or Open-Meteo and optional setup examples may modify shell profile files.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Vague Triggers

High
Confidence
90% confidence
Finding
The trigger conditions state the skill should be used for broad activities like code generation, programming assistance, debugging, and deployment, which exceed the weather skill’s documented scope. In an agent environment with exec/write permissions, this can cause inappropriate invocation and lead the agent to perform unrelated actions or expose user data under the guise of a weather tool.

Missing User Warnings

Medium
Confidence
83% confidence
Finding
The skill documents export/save operations and multiple curl examples that write files or fetch remote content, but it does not clearly warn that user-provided locations and parameters are transmitted to third-party services and that files may be created locally. This can mislead users and agents into performing network egress and filesystem writes without informed consent or adequate privacy review.

External Transmission

Medium
Category
Data Exfiltration
Content
# ...
def get_open_meteo(lat, lon):
    """Open-Meteo 备选方案"""
    url = "https://api.open-meteo.com/v1/forecast"
    params = {
        "latitude": lat,
        "longitude": lon,
Confidence
88% confidence
Finding
This code sends latitude and longitude to the external Open-Meteo service. Although external API use is the core function of the skill, transmitting user-supplied location data to a third party is still a real privacy and data-handling risk if done without explicit disclosure, consent, or policy controls.

External Transmission

Medium
Category
Data Exfiltration
Content
class WeatherTool:
    def __init__(self):
        self.base_url = "https://wttr.in"
        self.fallback_url = "https://api.open-meteo.com/v1/forecast"
# ...
    def quick(self, city):
        """一行式查询"""
Confidence
88% confidence
Finding
The WeatherTool class embeds an external fallback endpoint, meaning the skill is designed to transmit user location queries to a third-party API. In context this is expected behavior, but it remains security-relevant because it can disclose user interests or approximate location information outside the agent environment.

External Transmission

Medium
Category
Data Exfiltration
Content
except Exception:
        # 切换到 Open-Meteo
        coords = get_coordinates(city)
            "https://api.open-meteo.com/v1/forecast",
            params={"latitude": coords[0], "longitude": coords[1], "current_weather": True},
            timeout=30,
        ).json()
Confidence
86% confidence
Finding
The robust fallback path automatically switches to Open-Meteo after an exception, which may send location-derived coordinates externally without a fresh user decision. Automatic failover increases the chance of unintended data egress because requests continue even when the primary service fails, potentially bypassing user expectations about where their data is sent.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.