Back to skill

Security audit

Pet Soothing Trigger Analysis Skill | 宠物安抚触发分析技能

Security checks across malware telemetry and agentic risk

Overview

This skill is a remote pet-video analysis tool with hidden identity/account handling, not just the automatic pet-soothing trigger described up front.

Install only if you are comfortable sending pet monitoring media or URLs to the LifeEmergence/SMYX service and having the skill silently create or reuse a local identity, register/login remotely, and store tokens in a workspace SQLite database. Treat it as a cloud media-analysis and report-history skill, not as a verified automatic pet-soothing device controller.

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

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
76% confidence
Finding
Here, filter keys are taken from the caller and passed into getattr(self.__model__, key) without validation. While SQLAlchemy prevents classic SQL injection in the value position, untrusted field selection can still expose unintended columns, trigger exceptions for invalid attributes, and enable abuse of generic query surfaces in higher layers that should restrict searchable fields. In a shared pet-care skill environment, this could weaken access control or leak metadata if upstream callers can influence filters.

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
76% confidence
Finding
The count() method repeats the same unvalidated dynamic column selection pattern as list(), allowing callers to choose model attributes through filters. Even without direct SQL injection, this broadens the query surface, can cause denial-of-service via repeated error generation on bad keys, and may reveal information about protected columns through count-based probing. In this skill, the generic DAO is shared infrastructure, so misuse could affect multiple features.

Lp3

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding
The skill exposes significant capabilities—shell execution, file read/write, environment access, and network access—without declaring permissions or presenting corresponding user-facing warnings. This weakens transparency and consent, making it easier for the skill to perform sensitive actions such as saving uploads locally, querying cloud services, and invoking scripts without clear authorization boundaries.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding
The manifest promises automatic pet-soothing actions, but the documented behavior centers on analysis, report retrieval, identity handling, local persistence, and remote API interactions. This mismatch is dangerous because users may consent to a benign pet-care function while the skill performs unrelated data-processing and remote account/report operations they did not reasonably expect.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
Adding cloud historical-report querying expands the skill from live pet-behavior analysis into remote data retrieval, which is outside the narrow pet-soothing purpose described in the manifest. This broadening increases data exposure risk, especially if historical reports contain personal, household, or behavioral information tied to prior sessions.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
Implicit user identity initialization and automatic creation/reuse of a local default user introduce account-linking and persistence behavior unrelated to simple pet-video analysis. This is dangerous because it can silently associate reports and actions with a local identity, creating privacy, authorization, and cross-user data leakage risks without informed user consent.

Description-Behavior Mismatch

Medium
Confidence
88% confidence
Finding
The documented purpose emphasizes automatic intervention, but the actual workflow is analysis/reporting and remote report retrieval. This discrepancy can mislead users and reviewers about the skill’s real data flows and privileges, reducing the chance that sensitive remote interactions and persistence are scrutinized properly.

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
The implementation is a generic file/video analysis and upload client, which materially differs from the declared pet-calming trigger functionality. This mismatch is dangerous because users or downstream systems may grant permissions, supply media, or trust automation under false pretenses, enabling covert collection and transfer of local files or URLs to a remote analysis service.

Description-Behavior Mismatch

High
Confidence
97% confidence
Finding
The user-facing output only formats analysis reports and export links, contradicting the manifest claim that the skill automatically activates soothing mechanisms. Such deceptive capability claims increase security risk by masking the real data-processing behavior and undermining informed consent about what the skill actually does.

Intent-Code Divergence

Medium
Confidence
88% confidence
Finding
Accepting network video URLs is inconsistent with the stated pet-trigger purpose and broadens the input surface to arbitrary remote resources. This can facilitate unintended external content processing, data exfiltration by reference, or abuse of the skill as a generic remote-media analysis proxy.

Description-Behavior Mismatch

High
Confidence
96% confidence
Finding
The code implements a generic remote video-analysis client and history-listing function instead of behavior aligned with the declared pet-calming purpose. This capability mismatch is dangerous because it can mislead reviewers and users about what data is being processed, potentially enabling covert analysis or exfiltration of pet/home video in a skill that appears to be an innocuous automation feature.

Intent-Code Divergence

Medium
Confidence
91% confidence
Finding
User-facing strings and CLI help describe a generic 'video analysis tool,' contradicting the manifest that claims pet-calming trigger automation. Such inconsistency is a strong indicator of deceptive packaging: operators may believe they are deploying a pet-care feature when they are actually invoking a broader media-analysis pipeline with different privacy and security implications.

Context-Inappropriate Capability

Medium
Confidence
93% confidence
Finding
This file exposes generic HTTP GET/POST/PUT/DELETE wrappers that can call arbitrary URLs, which is substantially broader than the declared pet-calming functionality. In a skill/plugin context, this creates an unnecessary remote communication primitive that could be reused to contact unintended services, exfiltrate data, or perform unauthorized actions if other parts of the skill can influence the URL or payload.

Context-Inappropriate Capability

Medium
Confidence
89% confidence
Finding
The add/edit/delete helpers provide generic remote resource modification capability unrelated to the stated purpose of detecting pet anxiety and triggering soothing actions. Even if intended as reusable framework code, these methods broaden the skill's authority and can enable unintended state-changing API operations against external systems when combined with controllable inputs elsewhere in the codebase.

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
This utility layer performs broad authenticated remote API access, token handling, user lookup, and retry logic that is unrelated to a pet-calming skill's declared purpose of local detection and soothing actions. In this context, the mismatch materially increases risk because the skill can transmit identity and operational data off-device and act as a hidden network-capable account client without clear necessity or disclosure.

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
The code reads workspace identity data from a local file, persists default user identifiers, and reuses them automatically, which gives the skill access to internal identity state not justified by pet-care functionality. In a consumer pet-calming context, hidden identity harvesting and persistence is more dangerous because users would not reasonably expect the skill to inspect or maintain account-linked identifiers.

Context-Inappropriate Capability

High
Confidence
99% confidence
Finding
This code automatically registers or logs in a user by sending openId/mobile/source data to a remote health service endpoint, behavior that is clearly unrelated to pet calming. The context makes this especially suspicious because it silently provisions remote accounts and links identity data to an external service under the guise of a pet-care skill.

Vague Triggers

Medium
Confidence
85% confidence
Finding
The default trigger condition is broad enough to activate on generic pet video analysis requests, not just on clearly scoped soothing-trigger tasks. Overbroad invocation can cause unintended processing of pet videos, local file saving, and remote API submission in situations where the user did not intend to use this specific skill.

Vague Triggers

Medium
Confidence
84% confidence
Finding
The history-report trigger keywords overlap with common phrases like viewing reports or history, making accidental activation plausible. In this skill, accidental triggering is more serious because it can initiate cloud queries and reveal historical analysis data tied to an internally managed identity.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill states that uploaded attachments and media are automatically saved as local files, but it does not present a clear privacy or retention warning in the main description. Silent local persistence of user-provided media is risky because pet-monitoring videos can reveal household interiors, schedules, and other sensitive personal information.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill does not clearly warn that it will query cloud APIs and cause remote services to fetch user-provided URLs. This can expose sensitive media, internal or private URLs, and metadata to third parties, especially if users assume analysis happens locally or do not realize a remote backend will access the resource.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The code reads arbitrary local files and prepares them for upload to the analysis API without any visible notice, consent step, or data-minimization control in this component. In a skill masquerading as pet-calming automation, that undisclosed transfer is particularly concerning because users may not expect local media to be exfiltrated for remote analysis.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The script accepts a hidden --api-key parameter while also supporting remote API usage, but gives users no visible warning about credential handling, storage, or transmission. Hidden credential parameters reduce transparency and increase the risk of accidental exposure through shell history, logs, wrappers, or misuse in an unexpectedly networked skill.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
Enabling HTTPConnection and urllib3 debug logging can expose request URLs, payloads, headers, and responses, potentially including tokens or personal data, especially during troubleshooting. Even though this is gated by debug mode, it still creates a real confidentiality risk if debug is enabled in non-development environments.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill silently reads a workspace file containing an API key or internal identity value and uses it as an open-id fallback without any visible disclosure or consent. In this skill context, that behavior is unjustified and increases the chance of covert identity reuse across unrelated functions.

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