Back to skill

Security audit

Hong Kong Weather

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward Hong Kong weather lookup tool that only calls the official HKO open data API and does not show hidden persistence, credential access, or unrelated behavior.

Install this if you want Hong Kong-only weather data from HKO. Be aware it makes live network requests to data.weather.gov.hk and may answer in Traditional Chinese when language preference is unclear.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (7)

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
80% confidence
Finding

Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.

Content

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

md
- Data source: Hong Kong Observatory Open Data API (data.weather.gov.hk)
- No API key required
- Response time: typically 2-5 seconds
- When no warnings are active, the warning command returns "No active weather warnings" / "現時無生效天氣警告"

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
80% confidence
Finding

Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.

Content

Scanner excerpt · scripts/hk_weather.py (reported line 133)May include surrounding context.

python
- Data source: Hong Kong Observatory Open Data API (data.weather.gov.hk)
- No API key required
- Response time: typically 2-5 seconds
- When no warnings are active, the warning command returns "No active weather warnings" / "現時無生效天氣警告"

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The language handling policy explicitly says to default to tc when language is unclear because it is Hong Kong's primary language. This is a natural-language locale policy choice applied without asking the user, which conflicts with the requirement not to force a specific language or locale without opt-in.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 36)May include surrounding context.

md
import urllib.request
from datetime import datetime

BASE_URL = "https://data.weather.gov.hk/weatherAPI/opendata/weather.php"

# Weather icon mapping (simplified)
ICON_DESC_TC = {

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 · scripts/hk_weather.py (reported line 13)May include surrounding context.

python
import urllib.request
from datetime import datetime

BASE_URL = "https://data.weather.gov.hk/weatherAPI/opendata/weather.php"

# Weather icon mapping (simplified)
ICON_DESC_TC = {

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The script sets the default language to "tc" and also silently falls back to "tc" when the user provides an unsupported language. This enforces a specific locale choice unless the user explicitly overrides it, which matches the policy category for language or locale constraints without opt-in.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.