Back to skill

Security audit

UAV Farm Health Index Map | 无人机农田健康指数图生成

Security checks across malware telemetry and agentic risk

Overview

The skill is a farm-imagery analysis wrapper, but it also silently creates or reuses identities, uploads data to external services, and stores account tokens locally without enough user control.

Review before installing. Use this only if you are comfortable with UAV imagery, report queries, and identity-linked requests being sent to the configured external service, and with a local workspace database storing generated user records and service tokens. Prefer an explicit login/consent flow and endpoint scoping before using it with sensitive farm, geospatial, or business data.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
Findings (26)

Dynamic attribute access via getattr()

Low
Category
Dangerous Code Execution
Content
if filters:
                for key, value in filters.items():
                    query = query.filter(getattr(self.__model__, key) == value)

            if offset:
                query = query.offset(offset)
Confidence
80% confidence
Finding
query = query.filter(getattr(self.__model__, key) == value)

Dynamic attribute access via getattr()

Low
Category
Dangerous Code Execution
Content
if filters:
                for key, value in filters.items():
                    query = query.filter(getattr(self.__model__, key) == value)

            return query.scalar()
        finally:
Confidence
79% confidence
Finding
query = query.filter(getattr(self.__model__, key) == value)

Lp3

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding
The skill advertises only documentation metadata yet instructs execution of local scripts with shell, file, environment, and network capabilities, without declaring those permissions. This creates a trust gap: an agent or reviewer may treat it as low-risk content while it can access local files, persist data, and make outbound requests.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
The documented purpose is farmland image analysis, but the observed behavior includes local identity creation, SQLite persistence, remote login/token acquisition, cloud report listing, and generic backend delegation rather than local NDVI/NDRE computation. This mismatch is dangerous because users and orchestrators may approve the skill for a narrow analytical task while it actually performs account, storage, and network actions outside that scope.

Description-Behavior Mismatch

Medium
Confidence
86% confidence
Finding
The documentation expands the skill from image analysis into cloud-based historical report querying and delivery of report links. That scope expansion increases data-access risk because a user invoking analysis may unintentionally trigger retrieval of prior cloud-stored records and links associated with an internal identity.

Description-Behavior Mismatch

High
Confidence
96% confidence
Finding
The implementation behavior materially conflicts with the declared skill purpose: it performs generic video analysis and video-history listing rather than UAV farmland health-index analysis. This kind of capability mismatch is dangerous because users, orchestrators, or reviewers may grant permissions and trust based on the manifest while the code actually processes different inputs and may invoke unrelated backend functions, enabling deceptive or unauthorized behavior.

Intent-Code Divergence

Medium
Confidence
92% confidence
Finding
The CLI help text and argument semantics describe a video analysis tool, contradicting the published UAV farm-health skill description. Even if not directly exploitable as code execution, this inconsistency increases the risk of operator deception, mis-scoped deployment, and accidental data exposure because users may supply or authorize the wrong data and backend operations under false assumptions.

Description-Behavior Mismatch

High
Confidence
95% confidence
Finding
This file exposes a generic API wrapper with CRUD-style methods and arbitrary HTTP verbs that are much broader than the declared farm-health heatmap analysis purpose. In an agent skill context, such reusable network primitives can be abused to contact unintended services, move data off-platform, or perform unauthorized state-changing operations, especially when no endpoint allowlist or purpose restriction is visible here.

Context-Inappropriate Capability

High
Confidence
96% confidence
Finding
The http_post/http_put/http_get/http_delete methods accept arbitrary URLs and forward requests directly through RequestUtil, creating broad outbound network capability unrelated to the stated UAV analysis workflow. In a skill environment, this can enable SSRF-like behavior, exfiltration, or interaction with internal or external systems beyond the user's expected consent.

Context-Inappropriate Capability

Medium
Confidence
89% confidence
Finding
The add, edit, and delete helpers provide state-changing operations that do not fit the manifest's read/analysis-oriented farm-health description. Even if intended as shared utility code, exposing mutation operations in this skill expands the attack surface and could allow unauthorized modification or deletion of remote resources if invoked by other components.

Context-Inappropriate Capability

Medium
Confidence
90% confidence
Finding
The shared config initializer reads identity and messaging-related environment variables (such as OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, and FEISHU_OPEN_ID) that are unrelated to UAV farm health-map processing. In a reusable skill bundle, this creates unnecessary access to user/context identifiers and can enable cross-context data coupling or silent collection of metadata beyond the stated purpose.

Context-Inappropriate Capability

Medium
Confidence
80% confidence
Finding
The file exposes a very large cross-domain scene registry spanning health, childcare, emotion, surveillance, pets, and other domains far beyond UAV agricultural analysis. While not an exploit by itself, this excessive shared capability surface increases the risk of unintended feature activation, policy bypass, or confusing routing into unrelated high-sensitivity analysis modes within the same bundle.

Description-Behavior Mismatch

High
Confidence
95% confidence
Finding
The file implements shared user/account persistence logic, including default-user reuse, which is unrelated to the stated farm-health imagery analysis purpose. In this context, unrelated identity storage broadens the attack surface and suggests hidden cross-skill account handling that could enable unauthorized correlation or access to user data.

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
The User model stores identity and authentication-adjacent fields such as username, email, token, and open_token, none of which are justified by an agronomic map-generation skill. In a mismatched skill context, collecting and centrally storing such data increases the risk of credential leakage, cross-skill tracking, and misuse of sensitive user information.

Intent-Code Divergence

Medium
Confidence
88% confidence
Finding
The docstring describes a localized lightweight database wrapper, but the implementation forcibly redirects all databases into a workspace-wide shared data directory across agents and skills. This mismatch is security-relevant because it obscures cross-skill data sharing behavior, increasing the risk of unintended data exposure and trust-boundary violations.

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
This utility includes identity resolution, local account persistence, API-key-file harvesting, and automatic default-user creation that are unrelated to UAV farm image analysis. In the declared skill context, this broad identity bootstrap expands scope from image processing into hidden user/account management, increasing risk of unauthorized identity creation, persistence, and cross-skill data misuse.

Context-Inappropriate Capability

High
Confidence
99% confidence
Finding
The HTTP helper can silently call an external '/sys/phoneLogin' endpoint with 'silent':1 and 'register':1 to register or log in a user automatically. That behavior is not justified by an agricultural health-map skill and creates undisclosed outbound identity operations against an unrelated external health service, which could create accounts, bind identifiers, and obtain tokens without informed user action.

Vague Triggers

Medium
Confidence
84% confidence
Finding
The default trigger is broad enough to activate on essentially any uploaded UAV imagery needing analysis. Over-broad auto-invocation raises the chance of unreviewed execution, unnecessary file handling, and unintended network/API submission of user-provided media.

Vague Triggers

Medium
Confidence
88% confidence
Finding
The automatic history-report query trigger uses broad natural-language phrases and immediately directs cloud API access. This can cause unintended disclosure or retrieval of prior reports tied to an internal identity when a user merely asks exploratory questions about reports.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The script silently resolves an internal identity via `OpenIdUtil.resolve_current_open_id(...)` while suppressing user-facing disclosure of `--open-id`. This creates a privacy and authorization risk because operations such as history lookup may be performed under an implicit identity the user did not knowingly select, increasing the chance of unintended data access or attribution.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
Accepting a `--url` for analysis without clearly warning users that remote content may be fetched and transmitted to backend services creates a data-handling and privacy risk. In this UAV/farmland context, imagery can reveal sensitive operational information such as crop conditions, field boundaries, and asset locations, so silent remote processing is more dangerous than in a low-sensitivity domain.

Missing User Warnings

Medium
Confidence
83% confidence
Finding
The function reads the entire local file into memory and submits it to an external analysis API without any in-file user-facing disclosure, consent check, or data-handling notice. In a skill that may process drone imagery of farmland, this can expose sensitive operational, geospatial, or proprietary agricultural data to remote services unexpectedly.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
Requests automatically attach user identifiers and authentication material such as 'pnaUserName', 'X-Access-Token', 'X-Api-Key', and 'Authorization' headers, while the code provides no user-facing disclosure or consent flow. In a UAV imagery analysis skill, covert transmission of identity and token data to external services creates unnecessary privacy and account exposure, especially if endpoints are repurposed or compromised.

External Transmission

Medium
Category
Data Exfiltration
Content
"source": ConstantEnum.DEFAULT__SKILL_HUB_NAME
            }
            try:
                _response = requests.post(_url, json=_data)
                if _response.status_code == 200:
                    _response_json = _response.json()
                    if _response_json and _response_json.get("success"):
Confidence
98% confidence
Finding
requests.post(_url, json=

Hidden Instructions

High
Category
Prompt Injection
Content
| 📚 文档读取 | 仅在需要时读取参考文档,保持上下文简洁 |
| 📁 格式支持 | 输入要求:支持 jpg/png/tiff 影像或 mp4/avi/mov 视频,最大 10MB;建议提前完成拼接或上传单张高质量正射影像 |
| 🔎 使用提醒 | 多光谱影像需包含 NIR 波段才能计算 NDVI/NDRE 等真植被指数;纯 RGB 影像将回退使用 VARI/ExG |
| 🧑‍⚖️ 结果性质 | 分析结果仅作为田块管理与变量作业的参考,实际作业请结合现场实地踏查 |
| 🚫 脚本限制 | 禁止临时生成脚本,只能用技能本身的脚本 |
| 🌐 网络地址 | 传入的网络地址参数,不需要下载本地,默认地址都是公网地址,api 服务会自动下载 |
| 📜 报告输出 | 当显示历史分析报告清单的时候,从接口返回 json 数据中提取字段  作为超链接地址,且自动转化为如下 Markdown |
Confidence
80% confidence
Finding

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

Detected: suspicious.install_untrusted_source

Install source points to URL shortener or raw IP.

Warn
Code
suspicious.install_untrusted_source
Location
skills/smyx_common/scripts/config-dev.yaml:2