Back to skill

Security audit

Geoskill: Road Accessibility Analysis

Security checks for vulnerabilities and agentic risk

Overview

This skill performs disclosed road-network analysis with expected local file outputs and optional public data downloads.

Before installing, review whether automatic public data downloads are acceptable in your environment and consider pinning dependencies for reproducible deployments. Run the tool with an explicit output directory and avoid using sensitive input paths if the manifest should not record them.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Lp3

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding
The skill documentation indicates capabilities to read inputs and write outputs to disk, but it does not declare permissions or clearly scope those filesystem actions. This can lead to users or orchestrators invoking the skill without understanding that local files will be accessed and created, increasing the risk of unintended data exposure or overwriting files in the execution environment.

Missing User Warnings

Low
Confidence
84% confidence
Finding
The skill can automatically download external datasets and persist outputs and metadata, but the description does not prominently disclose this behavior as a side effect. Hidden network access and disk writes reduce informed consent and may violate expectations in restricted or sensitive environments.

Unpinned Dependencies

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

# Third-party dependencies used by this skill
numpy
rasterio
scipy
Confidence
91% confidence
Finding
The dependency is unpinned, so builds may resolve to different versions over time, undermining reproducibility and potentially introducing vulnerable or incompatible releases without review. In a security-sensitive supply chain, this increases the risk of accidental exposure to malicious or compromised upstream packages.

Unpinned Dependencies

Low
Category
Supply Chain
Content
# Third-party dependencies used by this skill
numpy
rasterio
scipy
Confidence
91% confidence
Finding
An unpinned rasterio dependency allows installation of arbitrary newer releases at build time, which can introduce supply-chain risk, breaking changes, or newly exposed vulnerable transitive components. This is especially relevant in data-processing skills that may run in automated environments.

Unpinned Dependencies

Low
Category
Supply Chain
Content
# Third-party dependencies used by this skill
numpy
rasterio
scipy
Confidence
91% confidence
Finding
Because scipy is unpinned, future installs can silently pick up versions with security regressions or incompatible behavior. This weakens supply-chain control and can expose the runtime to known or newly introduced issues without any code change in the skill itself.

Unpinned Dependencies

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

# Third-party dependencies used by this skill
numpy
Confidence
94% confidence
Finding
Using only a lower bound for geoskill-data-fetcher permits any later version to be installed, including versions with expanded capabilities, breaking changes, or security issues. Because this is a shared data-download library with network-facing behavior, loose versioning is more dangerous than for a purely local utility.

Static analysis

Detected: suspicious.dynamic_code_execution

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
scripts/road_accessibility_analysis.py:145