Back to skill

Security audit

Geoskill: Forest Health Monitor

Security checks for vulnerabilities and agentic risk

Overview

This skill is presented as real forest-health monitoring, but its main workflow generates simulated results while documenting unsupported real-data download options.

Review before installing. Do not rely on this skill for operational, scientific, or regulatory forest-health decisions until it requires real input data, labels synthetic output clearly, implements or removes unsupported download/place options, and honors overwrite protection.

Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (8)

Description-Behavior Mismatch

High
Confidence
99% confidence
Finding
The core workflow simulates baseline spectral indices, monitoring observations, and climate variables rather than ingesting and analyzing real user-supplied data. In a forest health monitoring skill, this is dangerous because it can produce authoritative-looking outputs, maps, and sampling plans that are fabricated, potentially driving incorrect operational or scientific decisions without obvious indication that the results are synthetic.

Intent-Code Divergence

Medium
Confidence
97% confidence
Finding
When --place is provided, the script does not geocode the named location and instead silently substitutes a hard-coded AOI near Beijing. This can cause analysis to run on the wrong geography while appearing successful, leading to materially incorrect environmental assessments and misleading downstream artifacts.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The script creates the output directory and overwrites output files unconditionally, while exposing an --overwrite flag that is never enforced. This can destroy prior analysis artifacts or clobber files in user-specified locations, undermining data integrity and making accidental loss easier in automated workflows.

Unpinned Dependencies

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

# Third-party dependencies used by this skill
numpy
pyarrow
rasterio
shapely
Confidence
95% confidence
Finding
The dependency `numpy` is unpinned, so builds may resolve to different versions over time, reducing reproducibility and potentially introducing newly published vulnerable or breaking releases. In a data-processing skill that may be deployed repeatedly across environments, this increases supply-chain risk even if it is not immediately exploitable on its own.

Unpinned Dependencies

Low
Category
Supply Chain
Content
# Third-party dependencies used by this skill
numpy
pyarrow
rasterio
shapely
Confidence
95% confidence
Finding
The dependency `pyarrow` is unpinned, allowing installation of any currently available version that satisfies default resolver behavior. Because `pyarrow` parses complex binary data formats and has a history of serious advisories, leaving it unpinned increases exposure to accidental installation of unsafe or untested versions.

Unpinned Dependencies

Low
Category
Supply Chain
Content
# Third-party dependencies used by this skill
numpy
pyarrow
rasterio
shapely
Confidence
93% confidence
Finding
`rasterio` is unpinned, which weakens reproducibility and can introduce unexpected security or compatibility regressions during installation. Given that geospatial libraries often process untrusted raster files and depend on native components, version drift can materially change the attack surface.

Unpinned Dependencies

Low
Category
Supply Chain
Content
numpy
pyarrow
rasterio
shapely
Confidence
93% confidence
Finding
`shapely` is unpinned, so future installs may pull different releases with different behavior or security properties. While not a direct exploit by itself, unpinned native/geospatial dependencies increase supply-chain uncertainty and can complicate secure deployment.

Unpinned Dependencies

Low
Category
Supply Chain
Content
# Requirements for forest-health-monitor
# 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
`geoskill-data-fetcher>=0.2.0` uses only a lower bound, so any newer version may be selected at install time. Because this appears to be a shared data-download library that interfaces with remote services, version drift here is more sensitive than for a pure utility library and could introduce insecure network, parsing, or auth behavior without review.

Static analysis

No suspicious patterns detected.