Back to skill

Security audit

Geoskill: Earthquake Damage Assessment

Security checks across malware telemetry and agentic risk

Overview

This skill does not look intentionally harmful, but it can generate earthquake damage reports from synthetic data even when real inputs or downloads are supplied, so it needs review before use.

Treat this as a demo/prototype unless the publisher fixes real input processing. Do not use its outputs for disaster response, safety decisions, engineering assessment, administrative determinations, or compensation workflows without independent human verification. Before installing for serious use, require clear permissions, pinned dependencies, explicit synthetic-output labeling, and fail-closed behavior when real imagery is supplied but cannot be processed.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • 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 (6)

eval() call detected

High
Category
Dangerous Code Execution
Content
"""Validate file existence and numeric ranges.
    Returns exit code (0 = ok, 2 = arg error)."""
    for flag, accessor in FILE_ARGS.items():
        path = eval(accessor)  # noqa: S307 - safe: only string concat
        if path is not None and not Path(path).exists():
            print(f"ERROR: --{flag} not found: {path}", file=sys.stderr)
            return 2
Confidence
97% confidence
Finding
path = eval(accessor) # noqa: S307 - safe: only string concat

Lp3

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding
The skill documentation describes file read/write behavior through CLI usage and generated outputs, but it does not declare corresponding permissions. Undeclared filesystem capabilities weaken security review and sandbox policy enforcement because users or orchestrators may approve the skill without understanding that it reads input paths and writes multiple output artifacts.

Description-Behavior Mismatch

High
Confidence
93% confidence
Finding
In 'file mode' the pipeline logs the provided input directory but silently falls back to synthetic data instead of processing user-supplied earthquake imagery. This is dangerous because it can produce fabricated assessment outputs that appear operationally valid, potentially misleading responders and downstream systems during disaster response. In this skill’s context, integrity failures are especially serious because users expect real damage triage, not demo data.

Unpinned Dependencies

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

# Third-party dependencies used by this skill
numpy
scipy
Confidence
97% confidence
Finding
numpy

Unpinned Dependencies

Low
Category
Supply Chain
Content
# Third-party dependencies used by this skill
numpy
scipy
Confidence
97% confidence
Finding
scipy

Unpinned Dependencies

Low
Category
Supply Chain
Content
# Requirements for earthquake-damage-assessment
# 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
geoskill-data-fetcher>=0.2.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/earthquake_damage_assessment.py:1213