Back to skill

Security audit

Crop Yield Prediction | 经济作物产量预测

Security checks across malware telemetry and agentic risk

Overview

This skill appears to be a crop-yield analysis wrapper, but it silently creates or reuses an identity, stores account tokens locally, and sends user media plus identity data to remote APIs with limited user control.

Review before installing. Use this only if you are comfortable with user-provided crop images or videos and report-history requests being sent to the configured LifeEmergence/SMYX APIs, and with the skill creating/reusing a local identity and storing access tokens in a workspace SQLite database. Avoid using it in workspaces containing sensitive shared identity files unless that account linkage is intended.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • 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
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (23)

Lp3

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding
The skill manifest declares no permissions while the documented behavior invokes local scripts, reads/writes files, accesses environment/internal identity state, uses network APIs, and requires shell execution. This under-declaration prevents informed consent and policy enforcement, making it easier for risky capabilities to run without review.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding
The skill claims crop-yield prediction based on agronomic and historical inputs, but the described implementation instead centers on remote API submission of media, historical report listing, and hidden identity resolution with local persistence. This mismatch is dangerous because users and reviewers may authorize an agronomy tool while it actually performs account handling, local storage, and remote data transfer that are not transparently disclosed.

Description-Behavior Mismatch

High
Confidence
93% confidence
Finding
The skill claims to perform crop yield prediction, but its core functions delegate to generic analysis and expose a history-listing capability unrelated to the declared purpose. This kind of scope mismatch is dangerous because users and downstream systems may grant the skill access expecting narrowly scoped crop analysis, while the implementation can retrieve prior analysis data and process arbitrary inputs under misleading branding.

Intent-Code Divergence

High
Confidence
90% confidence
Finding
The CLI presents itself as a crop analysis tool, but exposes pet-oriented argument names and values such as --pet-type with cat/dog/other. This inconsistency strongly suggests code reuse without proper adaptation, which can hide unintended execution paths, misroute data to the wrong backend behavior, and undermine operator understanding of what the tool actually does.

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
The implementation behavior is clearly for video analysis and history retrieval, while the published skill metadata describes crop yield prediction. This mismatch is dangerous because it can mislead users into supplying unrelated inputs and trusting the skill with data handling outside its stated purpose, which undermines informed consent and can conceal unintended data flows or a repurposed skill.

Intent-Code Divergence

High
Confidence
97% confidence
Finding
The inline docstrings, argument descriptions, and CLI help text all present this as a video analysis tool, directly contradicting the declared crop-yield purpose. Such contradictory messaging increases the risk of deceptive operation, operator confusion, and misuse of the skill in environments where permissions or trust are granted based on the stated agricultural function.

Description-Behavior Mismatch

Medium
Confidence
94% confidence
Finding
This service exposes broad generic HTTP and CRUD wrappers (`http_get`, `http_post`, `http_put`, `http_delete`, `add`, `edit`, `delete`, `page`, `list`) that are not constrained to crop-yield prediction functions. In an agent skill, this kind of overbroad network capability increases the attack surface and can enable unauthorized access to unrelated internal or external APIs, especially if higher-level code can influence the target URL or request payloads.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The `get_user_by_username` method introduces user-account lookup capability that is unrelated to crop-yield prediction. This creates an unnecessary identity/data access primitive that could be abused for account enumeration, privacy violations, or pivoting into broader platform functionality if exposed through the skill.

Description-Behavior Mismatch

Medium
Confidence
91% confidence
Finding
This crop-yield skill includes a generic DAO and a persistent user-record subsystem unrelated to yield prediction. In skill-based agent environments, unnecessary identity persistence broadens the attack surface, increases data-retention risk, and creates opportunities for cross-feature data access that the skill does not need.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
The User model stores sensitive identity and authentication-related fields including username, realname, email, token, and open_token, which are unjustified for a crop-yield prediction skill. If this database is read by another component or exposed through debugging, backup, or workspace sharing, it can leak credentials or personal data far beyond the skill's stated purpose.

Description-Behavior Mismatch

High
Confidence
97% confidence
Finding
This utility performs account bootstrap and remote registration/login flows unrelated to crop-yield prediction, including automatic creation or lookup of user identities and acquisition/storage of tokens. In a skill whose declared purpose is prediction, hidden identity provisioning and backend account operations materially expand the attack surface and can cause unauthorized external account creation, attribution, and token handling without clear user consent.

Description-Behavior Mismatch

Medium
Confidence
90% confidence
Finding
The code detects workspace layout, creates agent data/skills directories, and reads local identity material from workspace files, which exceeds what is necessary for crop yield prediction. While not inherently malicious, these persistence and environment-management capabilities enable silent local state manipulation and identity reuse outside the stated function of the skill.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The code inspects environment variables and filesystem paths to infer the current agent workspace and execution context. For a crop prediction skill, this environmental discovery is unnecessary and increases the ability to map host layout, locate writable areas, and potentially interfere with broader agent/workspace state.

Vague Triggers

Medium
Confidence
81% confidence
Finding
The auto-trigger keywords for historical report retrieval are broad enough to match ordinary user phrasing, causing the skill to query cloud history without a clear, explicit user confirmation step. In a context involving identity-linked historical reports, unintended triggering can expose sensitive report metadata or cause unexpected remote actions.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The skill states that uploaded attachments are automatically saved as local files, but this data-handling behavior is not prominently disclosed to users as a storage action with retention implications. Automatic local persistence of user-provided media increases privacy and data exposure risk, especially when files may contain sensitive farm or geolocation-related information.

Missing User Warnings

Medium
Confidence
87% confidence
Finding
The code resolves an internal open_id automatically and suppresses user-facing disclosure of the identifier parameter. Hidden identity resolution is risky because it can cause actions or data retrieval to occur under an implicit account context, surprising users and potentially exposing another user's history or linking analysis activity to an internal identity without informed consent.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The skill reads arbitrary local file contents into memory and transmits them to a remote analysis service without any user-facing disclosure, consent step, or clear limitation beyond extension and size checks. In a mismatched skill context advertised as crop-yield prediction, this is more dangerous because users may not realize local files are being exfiltrated to an external service, increasing the risk of accidental disclosure of sensitive data.

Missing User Warnings

Medium
Confidence
83% confidence
Finding
The code forwards a local file path or remote URL into an external analysis function without any explicit notice, consent prompt, or visible explanation of what data may be transmitted or stored. In the context of a mislabeled skill, this is more concerning because users expecting crop analytics may not realize they are invoking external video-processing behavior and potentially sharing sensitive media references.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
When debug mode is enabled, the code turns on low-level HTTPConnection and urllib3 debugging, which can expose full request/response details in logs. Because this same file handles tokens, open IDs, and account bootstrap requests, verbose transport logging can leak sensitive authentication and user data to console or log sinks.

Missing User Warnings

Low
Confidence
90% confidence
Finding
The code silently reads an identity value from data/smyx-api-key.txt and uses it as an internal identifier fallback. For a prediction skill, undeclared harvesting of local identity material creates privacy and consent issues and can couple user actions to a hidden persistent identity.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The request path automatically attaches app IDs, access tokens, API keys, authorization tokens, tenant metadata, and user identifiers to outbound requests without any local user-facing disclosure in this file. In the context of a crop-yield skill, silent transmission of identity/authentication material to external services is unjustified and risks credential leakage, privacy violations, and backend misuse.

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
94% confidence
Finding
This POST sends openId, mobile, source, and registration/login flags to an external health endpoint to create or retrieve a user account. That is an external transmission of identity data unrelated to crop-yield analysis, making the mismatch in skill purpose especially suspicious and increasing privacy and consent risk.

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Content
---
name: "smyx-crop-yield-prediction-analysis"
description: "Predicts expected yield of economic crops such as tomato, corn and potato by combining growth stage, nutrition status, environmental data and historical yield references. | 结合生长阶段、营养状况、环境数据与历史产量数据,预测番茄/玉米/土豆等经济作物的预期产量。"
version: "1.0.9"
license: "MIT-0"
---
Confidence
69% confidence
Finding
The manifest triggers a metadata-poisoning rule, and the file already shows signs of non-obvious control text elsewhere. In skill manifests, poisoned or ambiguous metadata can influence tool routing, reviewer interpretation, or downstream parsing in ways that conceal actual behavior or alter agent decisions.

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