Back to skill

Security audit

Elderly Toilet Time Abnormal Detection (>30 min) | 老年人如厕时间异常(超30分钟)识别

Security checks across malware telemetry and agentic risk

Overview

The skill broadly matches its stated elder-safety purpose, but it processes highly sensitive bathroom-monitoring data through cloud APIs while silently managing local identities and tokens.

Review this skill carefully before installing. It may be appropriate only in a controlled care setting with explicit informed consent, approved camera placement, and acceptance that footage, report history, identity values, and tokens may be handled by external lifeemergence cloud services and local SQLite storage.

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

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

Lp3

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding
The skill declares no permissions while instructing the agent to use shell execution, local file read/write, environment-backed identity handling, and network access. This mismatch weakens security review and user transparency, making it easier for sensitive operations to occur without explicit approval boundaries.

Context-Inappropriate Capability

Medium
Confidence
87% confidence
Finding
The skill expands from single video occupancy analysis into cloud-based historical report retrieval, which introduces additional data access unrelated to the core detection task. In a bathroom-monitoring context, this broadening is especially sensitive because historical records may reveal intimate behavioral patterns and could be fetched more often than users expect.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
Automatically reusing or creating a default local user identity introduces hidden account binding that is unrelated to the stated analysis function. This can cause cross-user data leakage, misattribution of reports, or unauthorized access to another person's bathroom-monitoring history, which is highly sensitive health-adjacent data.

Description-Behavior Mismatch

Medium
Confidence
85% confidence
Finding
The skill accepts arbitrary http/https video URLs and forwards them for backend analysis without constraining the source to the expected local camera workflow described in the manifest. This expands the trust boundary and can enable analysis of third-party or unintended remote content, creating privacy, policy, and potential backend abuse/SSRF exposure depending on how the downstream service fetches URLs.

Description-Behavior Mismatch

Medium
Confidence
85% confidence
Finding
The implementation exposes a generic video analysis and history interface, while the skill is described as a narrowly scoped elderly toilet-occupancy monitor. This mismatch weakens expected safety boundaries and can enable use on arbitrary videos or broader surveillance scenarios that users and integrators would not reasonably expect from the manifest.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
Allowing arbitrary network video URLs expands the skill from fixed installed-camera monitoring into a general remote video analysis tool. This can be abused to analyze unintended third-party content, pull sensitive internal media endpoints, or bypass deployment assumptions about trusted camera sources.

Description-Behavior Mismatch

Medium
Confidence
95% confidence
Finding
The file defines a generic user/account persistence layer with CRUD operations and a reusable User DAO, which is materially broader than the stated bathroom-occupancy alert function. In a surveillance/elder-care skill, collecting and persisting account records expands the attack surface and creates unnecessary retention of personal data unrelated to the declared purpose.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
The User model stores authentication-like tokens, open_token, email, birthday, age, and real identity data, none of which are necessary for detecting prolonged bathroom occupancy. In this skill context, that mismatch is more dangerous because it suggests silent collection of sensitive personal and credential material, increasing harm from local compromise, misuse, or unauthorized retention.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
This utility layer reads, creates, and persists platform identity values and tokens, including generating default user identities and storing account material locally. That capability is unrelated to a bathroom occupancy monitoring skill and expands the skill from local analysis into remote account lifecycle management, increasing privacy and account abuse risk if invoked unexpectedly or by a compromised component.

Context-Inappropriate Capability

High
Confidence
99% confidence
Finding
The HTTP helper can automatically register/login users against external health-platform endpoints and then attach resulting tokens to future requests. For a toilet occupancy analysis skill, silent account creation and remote authentication are unjustified, making undisclosed outbound identity operations particularly dangerous in this context.

Vague Triggers

Medium
Confidence
82% confidence
Finding
The history-report trigger uses broad natural-language phrases that can invoke cloud lookups without clear scope limits. This increases the chance of unintended retrieval of sensitive monitoring history from casual requests, especially problematic given the private bathroom-safety context.

Missing User Warnings

Medium
Confidence
85% confidence
Finding
The skill states that uploaded media is automatically saved locally without a clear user-facing disclosure, retention policy, or storage boundary. Because the content involves bathroom monitoring footage, silent local storage materially increases privacy risk if files are retained, exposed to other users, or accessed by other processes.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The document specifies continuous 24/7 bathroom-related video collection for elderly monitoring, which involves highly sensitive behavioral and potentially health-related data in an intimate setting. Although it mentions silhouette-only detection and blur/pixelation, it does not include explicit privacy warnings, consent requirements, retention limits, access controls, or operator obligations, creating a real privacy and compliance risk if implemented carelessly.

Missing User Warnings

Medium
Confidence
84% confidence
Finding
This CLI processes highly sensitive elderly bathroom-monitoring footage from local files or remote URLs and provides no warning, consent notice, or indication of whether data may be transmitted to a backend. In this context, silent handling of intimate monitoring data increases the risk of privacy violations, unintended uploads, and noncompliant use in caregiving environments.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
When given a local path, the skill reads the full file into memory and uploads it for analysis, but this file contains no user-facing consent, warning, or disclosure about that transfer. Because the skill processes bathroom-related video for elderly monitoring, the data is especially sensitive, making silent upload behavior more privacy-impacting than in ordinary media analysis.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The script sends local video paths or URL-based content to an analysis backend without any clear user-facing disclosure, confirmation, or data-handling notice. For a bathroom-monitoring skill involving potentially sensitive elder-care footage, this creates significant privacy and compliance risk because users may not realize footage is being transmitted off-device.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The code reads an internal identity/API-key file from the workspace and uses its contents as an open-id without user-facing disclosure or consent. In this skill context, that means a monitoring skill may silently appropriate preexisting local credentials or identifiers, undermining transparency and user expectation.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The request helper transmits usernames, tokens, and related metadata to external services without any evident user-facing disclosure in this code path. Given the skill's stated purpose is occupancy-time analysis, sending account-linked data off-device is a mismatched and privacy-relevant behavior that could expose sensitive identifiers or session tokens.

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