Back to skill

Security audit

Open-Meteo API

Security checks across malware telemetry and agentic risk

Overview

This is a coherent weather API helper that discloses its Open-Meteo network calls and does not show hidden persistence, credential use, destructive behavior, or unrelated data access.

Install only if you are comfortable with weather queries, place names, coordinates, dates, and requested variables being sent to Open-Meteo over HTTPS. Avoid using precise sensitive locations unless needed, and note that the bundled script covers common forecasts while advanced historical, air quality, marine, flood, and climate tasks rely on direct API calls from the documentation.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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
Findings (7)

Lp3

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding
The skill clearly performs outbound network access to third-party weather and geocoding endpoints, yet no declared permissions are present. This creates a transparency and policy-enforcement gap: users or orchestrators may invoke the skill without realizing location/place data will be transmitted externally.

Tp4

High
Category
MCP Tool Poisoning
Confidence
88% confidence
Finding
The description claims broader capabilities than the bundled implementation actually provides, including historical weather, air quality, and climate-oriented tasks. This mismatch can cause unsafe or misleading agent behavior, where the system routes requests assuming supported functionality and may produce incorrect outputs or attempt undeclared fallback behavior.

Vague Triggers

Medium
Confidence
84% confidence
Finding
The activation text says to use the skill for essentially any weather- or climate-related task, even when Open-Meteo is not mentioned. Overbroad routing increases the chance the skill is invoked unnecessarily, causing avoidable third-party data disclosure and potentially displacing more appropriate tools.

External Transmission

Medium
Category
Data Exfiltration
Content
| Task | Endpoint |
|---|---|
| Forecast / current weather | `https://api.open-meteo.com/v1/forecast` |
| Place name → coordinates | `https://geocoding-api.open-meteo.com/v1/search` |
| Historical weather (1940→now) | `https://archive-api.open-meteo.com/v1/archive` |
| Air quality (PM2.5, AQI, pollen) | `https://air-quality-api.open-meteo.com/v1/air-quality` |
Confidence
90% confidence
Finding
The skill sends user-supplied place names and coordinates to external Open-Meteo services, which is an external data transmission event. In a weather skill this is expected, but it still has privacy implications because location queries can reveal sensitive user whereabouts or interests.

External Transmission

Medium
Category
Data Exfiltration
Content
| Historical weather (1940→now) | `https://archive-api.open-meteo.com/v1/archive` |
| Air quality (PM2.5, AQI, pollen) | `https://air-quality-api.open-meteo.com/v1/air-quality` |
| Marine (waves, sea temp) | `https://marine-api.open-meteo.com/v1/marine` |
| Elevation lookup | `https://api.open-meteo.com/v1/elevation` |

All endpoints: `GET` with query parameters, JSON responses, HTTPS, CORS enabled.
See `references/other-apis.md` for historical/air-quality/marine/elevation/flood/climate details.
Confidence
90% confidence
Finding
The referenced archive, air-quality, marine, and elevation endpoints also involve outbound transmission of user query data to third-party services. Even though these are legitimate APIs, sending location-related inputs externally can expose sensitive contextual information if not disclosed and scoped properly.

External Transmission

Medium
Category
Data Exfiltration
Content
## Forecast API

`GET https://api.open-meteo.com/v1/forecast`

Key parameters:
Confidence
90% confidence
Finding
Direct forecast API usage transmits latitude/longitude and requested variables to an external provider. Because geolocation is often sensitive, the main risk is privacy leakage or unanticipated third-party processing rather than code execution.

External Transmission

Medium
Category
Data Exfiltration
Content
raise ValueError(f"Place not found: {place}")
    loc = geo["results"][0]
    r = requests.get(
        "https://api.open-meteo.com/v1/forecast",
        params={
            "latitude": loc["latitude"], "longitude": loc["longitude"],
            "current": "temperature_2m,weather_code,wind_speed_10m",
Confidence
91% confidence
Finding
The Python example demonstrates live requests to external geocoding and forecast services using user-provided place names. This is not inherently malicious, but it is a real external transmission path that can leak sensitive location information if the skill is invoked without clear consent and permission declarations.

VirusTotal

65/65 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.