Back to skill

Security audit

Geoskill: Urban Heat Analysis

Security checks across malware telemetry and agentic risk

Overview

This skill mostly performs local heat-island raster analysis, but it ships an unrelated hardcoded Earthdata credential helper and under-discloses optional network geocoding/download behavior.

Review this package before installing in shared or sensitive environments. The local raster analysis behavior is coherent, but the bundled hardcoded credential fallback should be removed or rotated, and users should be told clearly when place names are sent to geocoding services or when the from-place downloader is used.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • 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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (6)

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The code persists user-supplied place queries and resolved AOI data to a predictable cache directory under the user's home folder without any consent, disclosure, retention control, or permission hardening. Even though the cached data is not a secret by itself, location queries can reveal sensitive interests, travel plans, or operational targets, and storing them silently increases privacy and local data exposure risk on shared or monitored systems.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The resolver sends raw user-provided place names to external geocoding providers (Open-Meteo and optionally Nominatim), which can leak sensitive location intent to third parties. In a skill context, place strings may encode private addresses, investigative targets, or operational areas, so undisclosed outbound transmission creates a real privacy and data-handling vulnerability.

Missing User Warnings

High
Confidence
99% confidence
Finding
The module contains hardcoded fallback credentials, including a plaintext Earthdata username and password, directly in source code. Even if described as a fallback, embedding real secrets in code makes them recoverable by anyone with repository, package, artifact, or log access and can lead to account compromise, unauthorized API use, and credential reuse attacks.

Credential Access

High
Category
Privilege Escalation
Content
解析顺序:
    1. env: EARTHDATA_TOKEN
    2. ~/.geoskill/secrets.json
    3. .netrc: machine urs.earthdata.nasa.gov account <TOKEN>
    4. _DEFAULTS(通常为空)
    """
    return _resolve("EARTHDATA_TOKEN")
Confidence
72% confidence
Finding
.netrc

Unpinned Dependencies

Low
Category
Supply Chain
Content
numpy>=1.21.0
rasterio>=1.3.0
Confidence
95% confidence
Finding
numpy>=1.21.0

Unpinned Dependencies

Low
Category
Supply Chain
Content
numpy>=1.21.0
rasterio>=1.3.0
Confidence
95% confidence
Finding
rasterio>=1.3.0

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

Detected: suspicious.dynamic_code_execution

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
scripts/urban-heat-analysis.py:715

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
tests/test_urban-heat-analysis.py:14