Back to skill

Security audit

Farrowing/Hatching Monitoring

Security checks across malware telemetry and agentic risk

Overview

The skill’s cloud video analysis purpose is coherent, but it silently creates and reuses account identity, stores tokens locally, and can query cloud history without clear user control.

Install only if you are comfortable sending farm or hatchery media and account-linked report metadata to the LifeEmergence cloud service. Review how identity is sourced, where local tokens are stored, and whether automatic history queries and silent account creation are acceptable for your workspace before enabling it.

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
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (16)

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
82% 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
82% confidence
Finding
query = query.filter(getattr(self.__model__, key) == value)

Lp3

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding
The skill instructs the agent to use shell commands, local file writes/reads, network access, and implicit identity handling, but the manifest does not declare any permissions or trust boundaries for those capabilities. This creates a mismatch between documented behavior and enforceable policy, increasing the risk of over-privileged execution, unnoticed data access, and unsafe remote interactions.

Description-Behavior Mismatch

Medium
Confidence
90% confidence
Finding
The script exposes a history-listing function via `show_analyze_list(open_id)` and the `--list` CLI flag, which goes beyond the stated purpose of real-time video event monitoring/reminders. If access control is weak or `open_id` resolution is manipulated, this can expose prior analysis records or user-associated activity data without a clear business need in the manifest.

Context-Inappropriate Capability

Medium
Confidence
85% confidence
Finding
The code resolves a current `open_id` identity context even for a skill whose primary purpose is video-event analysis, creating unnecessary identity coupling. This increases privacy and authorization risk because identity-derived state may be used to access per-user history or other backend data unrelated to the immediate analysis task, especially when combined with the hidden `--open-id` and list functionality.

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
This utility performs remote account provisioning, token acquisition, and authenticated API requests that are unrelated to the stated purpose of monitoring farrowing/hatching events from video. In skill context, this is especially concerning because it silently expands the skill's capabilities into identity management and external service access, creating hidden data flows and privilege use beyond user expectations.

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
The code reads an identity value from a workspace credential file and, if absent, synthesizes and persists a default user identity for later reuse. That behavior is outside the manifest's animal-video monitoring scope and can create opaque identity binding, unintended tracking, and unauthorized use of workspace-held credentials.

Context-Inappropriate Capability

Medium
Confidence
84% confidence
Finding
This code detects agent workspaces and creates data/skills directories, enabling file-management and installation-related behavior beyond the skill's declared monitoring role. While not inherently malicious, such generalized workspace manipulation increases the blast radius if other parts of the skill are compromised or behave unexpectedly.

Vague Triggers

Medium
Confidence
90% confidence
Finding
The history-report auto-trigger phrases are broad enough that ordinary user requests about 'history reports' or 'report lists' could invoke this skill outside its intended context. That can cause unintended cloud API queries and disclosure of report metadata tied to the current internal identity without sufficient user intent confirmation.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill states that uploaded media is automatically saved to local files, but it does not present a user-facing notice about local persistence, retention, or cleanup. For continuous video from production facilities, this can expose sensitive operational footage to unintended local access or long-term storage beyond user expectations.

Missing User Warnings

Medium
Confidence
83% confidence
Finding
The script resolves an internal user identity through OpenIdUtil.resolve_current_open_id using a hidden parameter and without clear user-facing disclosure. In a skill that may access history via --list, undisclosed identity binding can cause actions or data retrieval to occur under an unexpected account context, creating privacy and authorization risks if the identity source is implicit or ambient.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The code reads arbitrary local file contents into memory and submits them to the analysis backend, but this function does not provide any user-visible notice, confirmation, or restriction beyond file existence/type/size checks. In a skill that processes local video from farms or hatcheries, this can expose sensitive operational footage or incident data to external services without clear consent, creating a privacy and data-handling risk.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
When debug mode is enabled, HTTPConnection and urllib3 debugging are turned on, which can expose full request and response details in logs. Because this file also handles tokens and identity-related traffic, debug logging can leak sensitive headers, identifiers, and service responses to local logs or consoles.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The utility reads an internal identity value from data/smyx-api-key.txt without any visible disclosure or consent mechanism. In the context of a video-event monitoring skill, this is a hidden identity access path that can cause unexpected credential use and undermine user trust and workspace isolation.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The code automatically submits identity data to a remote login/registration endpoint with silent and register flags, without visible user warning. This creates undisclosed external transmission and account enrollment, which is especially inappropriate for a skill whose declared purpose is local video-event monitoring.

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
96% confidence
Finding
requests.post(_url, json=

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