Back to skill

Security audit

Elderly Loneliness Detection & Warm Companionship | 独居老人孤独情绪识别与温暖陪伴

Security checks across malware telemetry and agentic risk

Overview

This skill has a coherent elder-care video analysis purpose, but it handles highly sensitive in-home footage through cloud APIs while silently creating or reusing identity-linked accounts and storing tokens.

Review this before installing in any real home, care facility, or family setting. Use it only with explicit consent from the elder and authorized caregivers, and only if you are comfortable with private video/audio, identity-linked reports, and report export links being handled by the configured remote service. Check where the API endpoints point, how long raw media and reports are retained, who can access history/export URLs, and whether the local workspace database may store tokens or account identifiers.

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

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
77% confidence
Finding
Using getattr(self.__model__, key) with keys taken from a caller-provided filters dict creates a generic mass-query surface over any model attribute. While SQLAlchemy prevents classic SQL injection here, an attacker or unintended caller can enumerate or query on sensitive/internal fields and trigger exceptions on invalid names, which broadens data access beyond intended business constraints.

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
This count() method has the same caller-controlled dynamic field selection issue as list(). Even without SQL injection, it can be abused for field discovery, user/account enumeration, and probing of sensitive attributes by counting records matching attacker-chosen internal fields.

Lp3

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding
The skill advertises and operationalizes file, network, shell, and environment-backed capabilities without any declared permission model or visible user consent boundary. In a skill that processes highly sensitive in-home elder video/audio and calls cloud APIs, this creates an unsafe mismatch between what the skill can do and what users or host systems may expect.

Description-Behavior Mismatch

Medium
Confidence
93% confidence
Finding
The skill claims to perform video analysis, but the CLI also exposes a history-report listing function tied to a user identity. This creates a capability/manifest mismatch that can conceal access to prior reports and user-linked data, which is especially sensitive given the elderly in-home/private-room surveillance context.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
The code initializes and uses an internal identity mechanism unrelated to the stated purpose of analyzing a provided video. Hidden identity binding broadens the data-access scope from single-file analysis to user-associated records, which can enable unauthorized access or cross-user data exposure if the internal identifier is resolved implicitly.

Context-Inappropriate Capability

Medium
Confidence
93% confidence
Finding
The skill exposes report-listing and export-link retrieval functions that go beyond the manifest’s stated purpose of analyzing a provided video for loneliness-related behaviors. In a highly sensitive elder-care surveillance context, this broadens access to previously generated reports and image exports, increasing the risk of unintended disclosure of private health- and behavior-related data if callers can enumerate or retrieve reports they should not access.

Context-Inappropriate Capability

Medium
Confidence
91% confidence
Finding
The code accepts arbitrary http/https video URLs and forwards them for analysis, introducing network-fetch behavior not described in the manifest. This can enable processing of third-party or internal-facing URLs without clear restriction, creating privacy, policy, and possible server-side request abuse concerns, especially given the sensitive nature of in-home elderly monitoring.

Description-Behavior Mismatch

Medium
Confidence
93% confidence
Finding
The manifest frames this skill as analyzing footage from a fixed in-home or private-room camera, but the CLI also accepts arbitrary remote video URLs. That broadens the capability from a constrained care-monitoring workflow to general remote-content analysis, which can enable analysis of unintended third-party footage and bypass user expectations about the source and scope of processed data.

Description-Behavior Mismatch

Medium
Confidence
90% confidence
Finding
The code exposes a history-listing mode via `--list` that is not described in the skill metadata. Undocumented access to prior analysis records increases the data-exposure surface, especially for a skill handling sensitive elderly in-home monitoring results, and may surprise users or integrators who expect one-shot analysis only.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
The skill resolves and uses an `open_id` to retrieve account-scoped analysis history, extending behavior beyond simple video analysis into identity-linked record access. In the context of private room and home surveillance of elderly individuals, this materially raises privacy risk because sensitive behavioral inferences can be tied to a user identity and enumerated through history access.

Context-Inappropriate Capability

Medium
Confidence
91% confidence
Finding
This file exposes generic add/edit/delete/list and arbitrary http_get/http_post/http_put/http_delete wrappers that are far broader than the declared purpose of loneliness-behavior video analysis. In a privacy-sensitive elderly-home surveillance context, such broad network primitives increase the chance that the skill can interact with unrelated endpoints, modify remote state, or support data exfiltration and secondary behaviors beyond the user-expected scope.

Context-Inappropriate Capability

Medium
Confidence
88% confidence
Finding
This file defines a generic user table storing username, real name, email, birthday, age, token, and open_token, which is substantially broader than what is needed for loneliness-behavior video analysis. In the context of an elderly-care monitoring skill, persisting identity and authentication-like tokens increases privacy risk and creates a larger breach surface for highly sensitive personal data.

Context-Inappropriate Capability

Medium
Confidence
85% confidence
Finding
The DAO automatically creates and alters a shared local database under a workspace-wide data directory, which exceeds the narrowly described analysis purpose and introduces cross-skill data persistence. In a privacy-sensitive elderly monitoring setting, shared automatic storage increases the risk of unintended retention, data mixing between agents/skills, and broader access to personal records.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
The utility automatically creates or logs in a user identity against a remote health service using locally derived usernames/open IDs, even though the declared skill purpose is elderly loneliness video analysis. This creates undisclosed account provisioning and data transmission behavior that expands the privacy and trust boundary far beyond the manifest, which is especially sensitive given the skill operates in private homes or nursing-home rooms.

Context-Inappropriate Capability

Medium
Confidence
96% confidence
Finding
The code reads an API-key/open-id style value from a workspace file and reuses local database identities to establish a default user context without clear relation to the stated video-analysis task. Silent harvesting and persistence of identity material increases the chance of unauthorized account linkage, unexpected cross-skill tracking, and misuse of local secrets.

Description-Behavior Mismatch

Medium
Confidence
97% confidence
Finding
This shared utility performs broad authenticated HTTP requests, injects tenant/user/platform metadata, retries authorization, and handles remote account state, none of which is narrowly tied to the advertised loneliness-video analysis behavior. In the context of a highly privacy-sensitive monitoring skill, such a broad network-capable utility substantially increases the risk of covert data exfiltration, account misuse, or expansion into unreviewed backend actions.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The default trigger is overly broad and auto-activates on generic elderly-home/private-room camera analysis requests, which can cause the skill to engage on sensitive surveillance content without sufficiently specific user intent. In this context, mistaken activation could lead to unnecessary processing, storage, or cloud transmission of intimate residential video.

Vague Triggers

Medium
Confidence
91% confidence
Finding
The keyword trigger list covers broad elder-care and companionship terms that are likely to appear in ordinary conversation, making accidental invocation plausible. Because the skill handles exceptionally sensitive behavioral surveillance, even benign misfires materially increase privacy and consent risk.

Missing User Warnings

High
Confidence
97% confidence
Finding
The skill describes continuous in-home/private-room video monitoring and API-backed analysis, but it does not prominently warn users about the extreme sensitivity of the data or clearly explain cloud handling, retention, and disclosure boundaries. This omission is dangerous because users may submit private elder footage without understanding that intimate behavioral data could be transmitted, stored, or linked to reports.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The document specifies APIs for continuous in-home video/audio monitoring of an elderly person and subsequent report retrieval/export, but the privacy, consent, retention, and access-control risks are not surfaced prominently at the beginning of the API documentation. In this context, the omission is dangerous because developers may integrate or expose these endpoints without implementing strong safeguards for highly sensitive behavioral and household surveillance data.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The export endpoint exposes a path to retrieve complete reports containing intimate behavioral inferences about an elderly person, yet the documentation gives no explicit warning that export is a high-risk operation requiring elevated authorization and strict handling. If implemented loosely, this can enable bulk exfiltration, oversharing, or secondary disclosure of sensitive health-adjacent and household surveillance information.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The call to resolve an internal open_id is hidden from normal user interaction and help output, meaning the skill may act on an internal identity without transparent disclosure. In a system handling private behavioral video and history reports, undisclosed identity resolution increases the risk of silent account correlation, unauthorized report retrieval, and privacy violations.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill reads local video files into memory and uploads them, and also accepts remote video URLs, but provides no user-facing warning in this file that sensitive surveillance footage will be transmitted to an external analysis service. Because the footage concerns elderly people in private homes or nursing-home rooms, the absence of disclosure and consent handling materially increases the risk of unauthorized sharing of extremely sensitive personal and health-adjacent data.

Missing User Warnings

Medium
Confidence
87% confidence
Finding
The script includes a hidden `--api-key` parameter and supports remote analysis operations without clear user-facing disclosure. Hidden credentialed behavior is risky because it obscures data egress and service invocation details, making it easier for operators or wrappers to send sensitive elderly-monitoring footage to external endpoints without informed consent.

Missing User Warnings

Medium
Confidence
98% confidence
Finding
The code sends a background request to a remote phoneLogin endpoint with silent/register flags to provision or retrieve a user account automatically, without any visible warning or consent step. Hidden account creation is a transparency and privacy failure, and in this skill's context it is more concerning because users may believe they are only running local elderly-behavior analysis.

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