Back to skill

Security audit

OpenWeather CLI

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent for an OpenWeatherMap CLI, but its install instructions build and install a mutable third-party GitHub project without pinning or integrity verification.

Review the referenced GitHub repository before installing, prefer a pinned reviewed commit or signed release, and avoid exposing unrelated environment variables when running owget. Treat the OpenWeather API key as sensitive, especially when using debug output.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:25
Finding
Mutable Remote Source Is Retrieved and Installed Without Integrity Verification## Vulnerability Details **File Location**: `SKILL.md`, lines 25-29 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High ### Vulnerable Code ```bash git clone https://github.com/ParinLL/OpenWeatherMap-script.git cd OpenWeatherMap-script go install . ``` ### Technical Analysis The recommended installation procedure clones the current default branch of a third-party GitHub repository and installs the resulting Go program without pinning a reviewed commit, verifying a cryptographic checksum, or validating a signed release. The effective installed payload can therefore change after this skill has been audited. Although `go install .` does not ordinarily execute the installed application's runtime logic during compilation, it produces and installs an executable from mutable remote source. When the user subsequently invokes `owget`, that executable runs with the user's privileges and receives access to the required `OPENWEATHER_API_KEY`. The project contains only `SKILL.md`; the referenced implementation is not included. Consequently, this audit cannot verify the external executable's network behavior or the document's assertion that sensitive parameters such as `appid` are redacted from debug output. ### Attack Path 1. An attacker compromises the referenced GitHub account or repository, or introduces a malicious revision into its default branch. 2. A user or agent follows the documented `git clone` command, retrieving the attacker's current source instead of a previously reviewed revision. 3. `go install .` compiles and installs the modified `owget` executable in the user's Go binary directory. 4. The user invokes `owget` for weather, forecast, or geocoding operations. 5. The malicious executable runs with the user's account privileges and can access `OPENWEATHER_API_KEY`, command arguments, accessible files, and network resources. 6. It may exfiltrate the API key or other accessible infor ...[truncated 839 chars]
Remediation
## Remediation Suggestions 1. Pin the source to an immutable, reviewed commit hash rather than cloning and building the repository's current default branch. 2. Prefer a versioned, signed release artifact from a trusted publisher. 3. Publish expected SHA-256 or stronger cryptographic checksums and require verification before installation. 4. Vendor the reviewed source into the skill package when feasible so that the audited content matches the installed content. 5. Review and lock Go module dependencies, including validating `go.mod` and `go.sum`, before building. 6. Document the exact reviewed version and provide reproducible build instructions. 7. Verify the implementation's credential-redaction behavior rather than relying solely on documentation, particularly for debug URLs and error messages. 8. Run the executable without administrative privileges and expose only the minimum required environment variables. 9. A hardened installation example should check out a specific reviewed commit and verify it before installation: ```bash git clone https://github.com/ParinLL/OpenWeatherMap-script.git cd OpenWeatherMap-script git checkout --detach VERIFIED_COMMIT_HASH test "$(git rev-parse HEAD)" = "VERIFIED_COMMIT_HASH" || exit 1 go install . ``` Replace `VERIFIED_COMMIT_HASH` with an explicitly documented and independently reviewed commit identifier.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep

Static analysis

No suspicious patterns detected.