Back to skill

Security audit

Baby Blanket Kick Monitoring Skill | 婴儿蹬被监测技能

Security checks across malware telemetry and agentic risk

Overview

The skill matches its baby blanket monitoring purpose, but it handles sensitive infant video with cloud processing, silent identity setup, and local token storage that are not clearly disclosed enough.

Review before installing. Use it only if you are comfortable sending infant/nursery videos or URLs to the publisher's cloud service, having reports tied to an automatically created or reused local identity, and storing service tokens in a workspace SQLite database. Ask the publisher for clear endpoint, retention, deletion, and account-linking documentation.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
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
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
88% confidence
Finding
The skill manifest advertises significant capabilities via its documented workflow and script invocations, including local file handling, shell execution, network access, and implicit identity handling, but it declares no permissions or trust boundaries. This mismatch can cause the agent or reviewer to underestimate what the skill can actually access, increasing the risk of unintended file, network, or environment exposure during use.

Description-Behavior Mismatch

High
Confidence
95% confidence
Finding
The implementation is a generic video upload/URL analysis and report-management wrapper, not a narrowly scoped infant blanket-kick detector as described. This mismatch is dangerous because users may provide sensitive nursery footage under a specific safety expectation, while the code appears capable of forwarding arbitrary content to a broader analysis backend with little purpose limitation.

Context-Inappropriate Capability

Medium
Confidence
89% confidence
Finding
The code accepts arbitrary http/https URLs and forwards them to the analysis service as videoUrl without domain allowlisting or purpose-specific constraints. This broad remote-ingestion capability exceeds the stated infant monitoring purpose and can be abused to analyze unrelated external content or trigger backend fetching of attacker-controlled resources.

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
This file exposes broad generic network capabilities—add/edit/delete plus arbitrary http_get/http_post/http_put/http_delete—that are not constrained to the stated infant blanket-kick monitoring purpose. In a skill that should only perform narrowly scoped monitoring/alerting, these wrappers materially expand what the skill can do, enabling unexpected data access, modification, or exfiltration if other parts of the skill invoke them with attacker-controlled or hidden endpoints.

Context-Inappropriate Capability

Medium
Confidence
93% confidence
Finding
The get_user_by_username capability is unrelated to infant sleep/blanket monitoring and introduces user-account lookup functionality into a child-focused skill. Unnecessary identity lookup increases privacy and enumeration risk, especially if usernames can be probed or correlated with other data handled by the skill.

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
This skill is for infant blanket-kick monitoring, yet the module defines generic user-account persistence and mutation logic, including creation, update, deletion, and account lookup behavior. That data handling is outside the stated purpose and materially broadens the privacy and attack surface, especially because account records can be modified by username or real name.

Context-Inappropriate Capability

High
Confidence
99% confidence
Finding
The User model stores personal profile data and authentication-like secrets such as token and open_token, which are unrelated to detecting whether an infant kicked off a blanket. Collecting and retaining such data without clear need creates unnecessary privacy risk and can lead to credential or session compromise if the local SQLite database is accessed.

Description-Behavior Mismatch

Medium
Confidence
91% confidence
Finding
The module exposes a generic `ai_chat`/agent-invocation capability that is unrelated to the stated infant blanket monitoring purpose, which expands the skill's effective capability beyond its declared scope. Even though the current implementation is stubbed, this kind of hidden or unnecessary agent interface increases attack surface and can later be wired to external execution or data exfiltration with little visibility.

Context-Inappropriate Capability

Medium
Confidence
89% confidence
Finding
The code is structured to invoke an external agent via subprocess-style execution, with prompt input flowing toward a command-building path. Although the actual `subprocess.run` call is commented out, retaining this execution scaffold in a baby-monitoring skill is unjustified and dangerous because it normalizes future re-enablement of external process execution without validating inputs or constraining behavior.

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
This utility code performs unrelated account login/registration, token acquisition, persistence, and authenticated API request handling even though the skill's stated purpose is infant blanket-kick monitoring. That hidden identity and credential workflow creates an unnecessary external trust dependency and can silently enroll users or reuse local identities, exposing account and privacy risk well beyond the skill's expected function.

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
The code reads workspace identity data from local files, reuses existing usernames from a local database, and generates/persists default identities when none are provided. For a baby-monitoring skill, this is unjustified identity harvesting/provisioning behavior that can silently bind the skill to a workspace user context and create persistent identifiers without user knowledge.

Vague Triggers

Medium
Confidence
82% confidence
Finding
The history-report trigger phrases are broad enough that common requests like viewing reports or report lists may auto-invoke cloud queries even when the user did not clearly intend this specific infant-monitoring skill. In a privacy-sensitive context involving infant bedroom footage and historical monitoring records, overbroad activation can lead to unintended retrieval or disclosure of sensitive report metadata.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The skill processes highly sensitive content—images and videos from an infant bedroom—and can query cloud-stored historical reports, yet the description does not clearly warn users about privacy implications, retention, or remote processing. Users may provide intimate household footage without informed consent or understanding of where data is sent and stored.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The skill reads local files into memory or forwards remote URLs directly to the backend analysis service, but this code provides no user-facing notice, consent step, or clear disclosure of data transmission. For a baby-monitoring context, the data is especially privacy-sensitive because it may include footage of infants, bedrooms, and household interiors.

Missing User Warnings

Medium
Confidence
81% confidence
Finding
The function forwards a local file path or URL to skill.get_output_analysis without any explicit user disclosure about where the video is processed or whether content is transmitted to an external service. For a baby-monitoring skill handling sensitive household and child video, silent off-device processing creates meaningful privacy risk.

Missing User Warnings

High
Confidence
88% confidence
Finding
The delete method performs a state-changing destructive HTTP request with no built-in confirmation, guardrails, or authorization context in this helper. Combined with the skill's mismatched scope, this creates risk that internal data or remote resources could be deleted through hidden or unintended code paths without meaningful user awareness.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The code reads a sensitive identity value from data/smyx-api-key.txt and uses it as an internal identity source without any user-facing disclosure. This is dangerous because it silently repurposes workspace secrets or identifiers, which can cause unauthorized account association and privacy leakage when later used in requests.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The request wrapper automatically injects usernames, tokens, API keys, and authorization headers into outbound HTTP requests without clear user disclosure. In the context of a child-monitoring skill, hidden transmission of identity and credential data to external services is especially concerning because users would reasonably expect local monitoring, not background account-linked network activity.

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
92% confidence
Finding
requests.post(_url, json=

Hidden Instructions

High
Category
Prompt Injection
Content
|---|---|
| 📚 文档读取 | 仅在需要时读取参考文档,保持上下文简洁 |
| 📁 格式支持 | 支持格式:mp4/avi/mov,最大 10MB |
| 🧑‍⚖️ 结果性质 | **⚠️ 重要提示**:本监测结果仅供辅助提醒参考,不能替代家长看护和婴儿安全监护,请确保宝宝睡眠环境安全 |
| 🚫 脚本限制 | 禁止临时生成脚本,只能用技能本身的脚本 |
| 🌐 网络地址 | 传入的网路地址参数,不需要下载本地,默认地址都是公网地址,api 服务会自动下载 |
| 📜 报告输出 | 当显示历史分析报告清单的时候,从接口返回 json 数据中提取字段  作为超链接地址,且自动转化为如下 Markdown |
Confidence
74% confidence
Finding

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