Back to skill

Security audit

Pet Respiratory Rate Abnormal Detection (Resting) | 宠物呼吸频率异常监测(静息)

Security checks across malware telemetry and agentic risk

Overview

This pet respiratory analysis skill is purpose-related, but it uses cloud video processing plus automatic account identity and token persistence with weak user control.

Review before installing. Use this only if you are comfortable sending pet videos or video URLs to LifeEmergence cloud services, having reports tied to an automatically resolved or created identity, and storing service tokens in the workspace data directory. Prefer a version that clearly prompts before upload, documents retention and deletion, and lets users control account linkage and history lookup.

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
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
Findings (22)

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

Lp3

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding
The skill advertises and instructs use of shell execution, local file handling, environment-backed identity behavior, and network/API access, but does not declare permissions or present them transparently. This creates a capability mismatch that can lead to over-privileged execution and weak user awareness about what the skill can access or transmit.

Description-Behavior Mismatch

Low
Confidence
86% confidence
Finding
The stated purpose is respiratory-rate analysis, but the skill also includes a cloud-backed historical report retrieval feature that expands data access beyond the core monitoring workflow. This broadens the trust boundary and introduces additional privacy and data-exposure risk, especially because report history may contain sensitive uploaded media metadata or health-related observations.

Context-Inappropriate Capability

Medium
Confidence
94% confidence
Finding
The skill introduces hidden internal identity association, fallback to a default local user, and even automatic user creation, none of which is necessary for simple respiratory-video analysis. This can cause cross-user data mixing, unintended account linkage, and opaque access to historical cloud reports without explicit user awareness or consent.

Context-Inappropriate Capability

Medium
Confidence
94% confidence
Finding
The script contains hidden identity-dependent behavior and a history-listing mode that are not necessary for local respiratory-rate analysis. It resolves an internal OpenID context and can retrieve prior analysis records, which creates a privacy and access-control risk if users are unaware that identity context is being used or if history retrieval is not tightly scoped.

Description-Behavior Mismatch

Medium
Confidence
81% confidence
Finding
The skill is described as a narrowly scoped pet respiratory-rate analyzer, but this code exposes a generic history listing function keyed by OpenID. That broadens access beyond single-file analysis into account-linked data retrieval, increasing the risk of unintended data exposure if identity handling or authorization is weak elsewhere in the stack.

Context-Inappropriate Capability

Medium
Confidence
76% confidence
Finding
Resolving and using an OpenID identity context is not necessary for local respiratory-rate inference on a supplied video and introduces identity-linked processing into a health-adjacent workflow. In this context, tying analysis actions to persistent user identity can enable unnecessary tracking, cross-session data correlation, or access to other user-scoped functions.

Context-Inappropriate Capability

High
Confidence
81% confidence
Finding
The model stores identity and authentication-related data such as username, realname, email, token, and open_token, but the skill's stated purpose is pet respiratory monitoring. In this context, collecting and persisting such data without clear necessity, minimization, or protection creates unnecessary exposure of sensitive user information and broadens the blast radius if the local database is accessed.

Description-Behavior Mismatch

High
Confidence
97% confidence
Finding
The utility layer performs remote account login/registration and token acquisition/persistence, which is unrelated to pet respiratory-rate analysis and materially expands the skill's privileges and data flows. In context, this means simply using the skill can silently create or bind identities and communicate with external services, creating undisclosed account, tracking, and credential-handling risk.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
The code auto-resolves, creates, and persists default user identities, including generating synthetic usernames and reusing local identifiers, without any obvious linkage to the monitoring function. This can cause silent identity creation and long-lived attribution of user activity to locally derived accounts, which is especially concerning because the skill's stated purpose is passive health monitoring rather than account management.

Context-Inappropriate Capability

Medium
Confidence
83% confidence
Finding
The code discovers agent workspaces, inspects environment-derived paths, and creates shared data/skills directories beyond what is needed for respiratory monitoring. While not directly exploit code, this broadens filesystem reach and creates opportunities for cross-workspace contamination, unexpected persistence, or data mixing in multi-agent environments.

Vague Triggers

Medium
Confidence
81% confidence
Finding
The trigger rules are broad enough to activate on common respiratory-related phrases and historical-report keywords, increasing the chance that the skill runs when the user did not intend cloud analysis or report retrieval. Unintended activation matters here because the workflow can save files locally and query remote APIs, expanding exposure of user content and metadata.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill describes local-file saving and cloud/API-based processing and history lookup, but it does not clearly warn users that uploaded pet media and generated reports may be transmitted to and stored in cloud services. This omission undermines informed consent and can expose sensitive household imagery, location hints, and health-related records without adequate notice.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The code uses undisclosed internal identity resolution via OpenIdUtil without clear user-facing disclosure. In a health-monitoring context involving pet data and potentially user-linked history, hidden identity binding can lead to unauthorized association, privacy surprises, or improper access to stored reports if upstream controls are weak.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The skill reads the entire local video file and sends it to an external analysis service without any user-facing disclosure, consent gate, or minimization visible in this code. Because these videos may contain pets, homes, clinics, or other sensitive environmental data, silent upload creates a meaningful privacy and data-handling risk even if the transfer is expected by product design.

Missing User Warnings

Low
Confidence
85% confidence
Finding
The skill forwards user-supplied remote video URLs to the analysis service without visible disclosure or validation beyond scheme checking. This can expose private or signed URLs to a third-party backend and may cause the backend to retrieve content the user did not realize would be shared, creating privacy and data-governance risk.

Missing User Warnings

Medium
Confidence
84% confidence
Finding
The script accepts hidden internal parameters including an API key and sends video content for remote analysis without clear user-facing disclosure in the CLI help or flow. For a pet monitoring skill handling potentially sensitive home or clinic video, undisclosed credential use and remote transmission materially increase privacy and governance risk.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
HTTP requests automatically attach identity and authentication fields such as tokens, API keys, authorization headers, tenant metadata, and usernames, but there is no normal user-facing disclosure or consent mechanism. For a pet monitoring skill, this hidden transmission is disproportionate and could expose user identity, enable tracking, or send credentials to external services unexpectedly.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The code silently reads a local data/smyx-api-key.txt file to obtain an identity value and then uses it in later request/auth flows without user-facing notice. In this skill context, automatic credential or identifier harvesting is unrelated to respiratory analysis and increases privacy and account-binding risk.

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=

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-respiratory-rate-abnormal-detect-analysis"
description: "AI-powered non-contact pet respiratory rate monitoring at rest. Detects thoracic-abdominal motion via a fixed camera, calculates breaths-per-minute, and compares against species/body-size resting norms; triggers early-warning when abnormal (e.g. dog >30 bpm, cat >40 bpm, or <8 bpm). Helps detect cardiopulmonary, respiratory or heat-stress risks early. Scenarios: home night monitoring, animal hospital wards, pet boarding centers. | 通过宠物窝或休息区固定摄像头,在宠物静息状态下分析其胸腹部起伏运动,自动计算呼吸频率(次/分钟),并与该物种/体型的正常静息呼吸范围进行对比;若检测到呼吸过快(如犬>30次/分钟,猫>40次/分钟)或过慢(<8次/分钟),则输出健康预警,建议主人观察或就医。有助于早期发现呼吸系统、心脏或热应激等潜在问题。应用场景:宠物家庭夜间监护、宠物医院住院部、宠物寄养中心。"
version: "1.0.4"
license: "MIT-0"
---
Confidence
78% confidence
Finding
description:; ‍; ‍

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