Back to skill

Security audit

Human Pose Recognition Skill | 人体姿态识别技能

Security checks across malware telemetry and agentic risk

Overview

The skill mostly does the advertised posture-analysis job, but it also sends sensitive media and identity data to remote services and stores local auth tokens without enough user-facing control or disclosure.

Review before installing. Use this only if you are comfortable sending local videos, image/video URLs, generated or existing user identifiers, tenant/platform metadata, and report history queries to the configured remote service. Check and change the packaged dev/private endpoints, avoid passing secrets on the command line, and obtain consent before analyzing footage of identifiable people.

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 (27)

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

Lp3

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding
The skill instructs the agent to invoke local Python scripts, read and save local files, access network URLs, and query a cloud API, yet it declares no explicit permissions or trust boundaries. This creates a capability-transparency gap: operators and users may not realize the skill can access files, shell execution, environment-linked identity handling, and remote services, increasing the chance of unintended data exposure or unsafe execution.

Intent-Code Divergence

High
Confidence
96% confidence
Finding
The documented endpoints and scenario code clearly describe pet health analysis, which conflicts with the declared purpose of a human posture recognition skill. This kind of capability/documentation mismatch is dangerous because it can mislead integrators, cause the agent to call unrelated back-end services, and potentially expose or process the wrong class of sensitive data under false assumptions.

Context-Inappropriate Capability

Medium
Confidence
89% confidence
Finding
The CLI exposes a hidden identity-based listing path via `--open-id` and `--list` that is unrelated to core posture-recognition processing and is intentionally suppressed from normal help output. Hidden account-scoped functionality increases the risk of unauthorized enumeration or access to another user's analysis history, especially because identity resolution is performed internally and the feature is not transparently disclosed to users.

Context-Inappropriate Capability

Medium
Confidence
93% confidence
Finding
The skill exposes history listing by `open_id`, which introduces access to prior analysis records unrelated to the narrow posture-recognition use case. If `open_id` can be influenced or resolved incorrectly, this can enable unauthorized metadata or result disclosure across users, making it a privacy and authorization risk.

Description-Behavior Mismatch

Medium
Confidence
94% confidence
Finding
This helper exposes generic create, edit, delete, and raw HTTP verb wrappers that are not constrained to posture-recognition operations. In a skill advertised for human posture analysis, such broad network capability expands the attack surface and could be reused by higher-level code to reach arbitrary backend endpoints or perform unintended state-changing actions.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The add, edit, and delete methods provide direct remote resource modification primitives without any visible restriction tying them to the stated posture-recognition function. If exposed through agent workflows, they could enable unauthorized or unintended modification of remote systems, which is unjustified for an analysis-oriented skill.

Description-Behavior Mismatch

High
Confidence
97% confidence
Finding
This file defines generic user account persistence, including username-based lookup and default-user selection, which is not aligned with the declared human-posture recognition purpose. The mismatch increases suspicion because unrelated identity-management logic can enable covert collection or reuse of user records without a clear product need.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
The User model stores identity and authentication-related data including username, real name, email, token, and open_token, which exceed what posture analysis requires. In a security-monitoring or elderly-care setting, unnecessary retention of such fields expands privacy risk and the blast radius of any compromise.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The DAO exposes broad CRUD capabilities over a local SQLite database, including create, update, delete, and arbitrary filtering, which is much more persistence power than a posture-recognition skill appears to need. In context, this enlarges the attack surface and enables storage or modification of unrelated user/account data under the cover of a different manifest purpose.

Description-Behavior Mismatch

High
Confidence
97% confidence
Finding
This utility code performs remote account provisioning, token acquisition, token persistence, and authenticated API calls that are unrelated to human posture recognition. In the context of a vision skill, this hidden identity bootstrapping and outbound communication materially increases the attack surface and can enable undisclosed account creation, data transmission, and remote service coupling without informed user consent.

Context-Inappropriate Capability

Medium
Confidence
91% confidence
Finding
The code reads an identity value from workspace storage and creates or reuses a default local user identity, then persists that state for future use. For a posture-recognition skill, this is not clearly necessary and creates undisclosed identity state that can be reused across sessions or features, increasing privacy and misuse risk.

Context-Inappropriate Capability

Medium
Confidence
86% confidence
Finding
The file includes environment/workspace discovery logic and automatic directory creation capabilities that are broader than expected for pose analysis. While not inherently malicious, such filesystem and environment awareness can be abused to persist data in agent workspaces, expand operational scope, and make the skill less transparent to users.

Vague Triggers

Medium
Confidence
91% confidence
Finding
The default trigger says the skill should run whenever a user provides a monitoring video URL or file for posture recognition, but the trigger language is broad enough that unrelated file or video sharing could activate analysis automatically. In a surveillance-oriented skill that uploads content to external services and stores historical reports, overbroad invocation increases the risk of processing sensitive media without clear, specific user intent.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The overview emphasizes analysis and warning features but does not clearly disclose privacy implications of uploading local videos or remote URLs for cloud analysis, nor the retention of historical reports linked to an internal identity. Because the skill is intended for security monitoring and elderly care, the media may contain highly sensitive footage of identifiable individuals, making omission of privacy warnings materially risky.

Missing User Warnings

Medium
Confidence
84% confidence
Finding
The skill sends user-provided local video paths or remote video URLs to backend analysis through `skill.get_output_analysis(...)` without clearly warning the operator that media or references will be transmitted off-host. In a security-monitoring/elder-care context, videos may contain highly sensitive personal data, so undisclosed transfer can cause privacy violations, policy breaches, or accidental exposure of internal network resources if backend systems fetch supplied URLs.

Missing User Warnings

Medium
Confidence
76% confidence
Finding
Accepting a hidden `--api-key` CLI argument encourages secret entry on the command line, where it may be exposed through shell history, process listings, logs, or orchestration tooling. The lack of user-facing warning increases the chance of accidental credential disclosure and misuse of the backing service.

Missing User Warnings

Medium
Confidence
84% confidence
Finding
The tool analyzes local files or remote URLs via a backend service but gives no explicit warning that video content may be transmitted off-host. Because posture-recognition inputs can contain sensitive surveillance or elder-care footage, silent network transfer materially increases privacy and data-handling risk in this context.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The module performs outbound HTTP requests and user lookup operations with no user-facing disclosure, consent, or visible transparency controls. In an agent skill context, undisclosed network transmission can leak inputs, metadata, or identifiers to external services, especially when the skill's manifest focuses on posture recognition rather than generalized API communication.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
Enabling urllib3/http.client debug logging can expose full request and response metadata, including tokens, identifiers, URLs, and potentially payload contents, to logs or console output. Because this code also performs authenticated requests, debug mode materially raises the risk of credential leakage and sensitive data disclosure.

Missing User Warnings

Low
Confidence
88% confidence
Finding
The code automatically creates agent data and skills directories as a side effect of helper accessors. In a posture-recognition skill, silently preparing writable persistence locations increases stealth and enables later storage of user data, models, tokens, or other artifacts without explicit disclosure.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The utility reads an API-key-related identity value from workspace storage without any visible user disclosure or consent flow. In combination with tokenized network operations elsewhere in the file, this supports silent reuse of stored credentials or identifiers, which is privacy-sensitive and outside the expected scope of posture recognition.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
This request path transmits usernames, open IDs, tokens, tenant and platform metadata, and other identity-linked fields to remote services with no apparent user-facing disclosure. For a posture-recognition skill, that undisclosed outbound identity transmission is high risk because it can expose sensitive metadata, create remote linkability, and enable account abuse or tracking.

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
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