Back to skill

Security audit

Geoskill: Urban Green Equity

Security checks for vulnerabilities and agentic risk

Overview

This skill appears to run local green-space equity analysis and write expected reports, with caution around unpinned dependencies and a documented download feature that is not implemented in the included script.

Install only in an environment where unpinned Python dependencies are acceptable, or pin and review dependency versions first. Treat the documented auto-download/cache workflow as unverified for this artifact because the included script does not implement those flags; prefer explicit local input files unless you have reviewed the external data-fetcher package.

Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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 (8)

Lp3

Medium
Category
MCP Least Privilege
Confidence
84% confidence
Finding
The skill documents file-writing behavior via outputs like reports, manifests, and QA files, yet no permissions are declared. That mismatch can mislead operators and downstream policy enforcement, causing the skill to write to local storage without an explicit trust decision.

Intent-Code Divergence

Medium
Confidence
90% confidence
Finding
The documentation introduces auto-download behavior from Microsoft Planetary Computer that is inconsistent with the main workflow and parameter descriptions. This kind of hidden or poorly aligned network behavior increases the risk of unexpected external access, unreviewed data flows, and user confusion about what the skill actually does.

Description-Behavior Mismatch

Medium
Confidence
88% confidence
Finding
The skill's documented scope expands from local green-space equity analysis into remote data acquisition. Broadening capabilities beyond the stated purpose violates least privilege and can expose users to unexpected network activity, licensing/compliance issues, and ingestion of untrusted external data.

Context-Inappropriate Capability

Medium
Confidence
86% confidence
Finding
Remote download and local cache management are not justified by the stated green-space assessment function and introduce extra attack surface. Caching remote content locally can persist untrusted data, consume disk, and bypass user expectations about offline or local-only analysis.

Unpinned Dependencies

Low
Category
Supply Chain
Content
geoskill-data-fetcher>=0.2.0

# Third-party dependencies used by this skill
numpy
rasterio
Confidence
98% confidence
Finding
The dependency on numpy is unpinned, so builds may resolve to different versions over time, including versions with regressions or known security issues. In a geospatial analysis skill, this weakens supply-chain integrity and reproducibility, and it is more concerning here because numpy is also separately flagged as having known advisories.

Unpinned Dependencies

Low
Category
Supply Chain
Content
# Third-party dependencies used by this skill
numpy
rasterio
Confidence
95% confidence
Finding
The dependency on rasterio is unpinned, allowing uncontrolled version drift and increasing exposure to accidental breakage or newly introduced vulnerable releases. Because this skill likely processes external geospatial data, dependency unpredictability can expand attack surface and reduce the ability to audit exactly what code is deployed.

Unpinned Dependencies

Low
Category
Supply Chain
Content
# Requirements for urban-green-equity
# Shared data-download library (Planetary Computer / NASA POWER / OSM)
geoskill-data-fetcher>=0.2.0

# Third-party dependencies used by this skill
numpy
Confidence
97% confidence
Finding
Using geoskill-data-fetcher>=0.2.0 permits any future version above the minimum, which creates supply-chain risk because the installed code can change without review. This is especially relevant because the package is described as a shared data-download library interacting with external services, making compromise or unsafe updates potentially more impactful.

Known Vulnerable Dependency: numpy — 10 advisory(ies): CVE-2014-1859 (Numpy arbitrary file write via symlink attack); CVE-2021-41495 (NumPy NULL Pointer Dereference); CVE-2021-33430 (NumPy Buffer Overflow (Disputed)) +7 more

Critical
Category
Supply Chain
Confidence
84% confidence
Finding
Referencing numpy without a version constraint means the environment may resolve to a version affected by one or more known advisories. While some listed numpy CVEs are old, disputed, or context-dependent, leaving the package unconstrained makes it impossible to demonstrate that a patched version will be installed, which is a real supply-chain security weakness.

Static analysis

No suspicious patterns detected.