T01 · Skill Instruction Hijacking
- Location
skills/smyx_common/scripts/util.py:654- Finding
Remote API response triggers payment-skill installation steering
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill’s video-search purpose is real, but it also silently uses identity data, stores reusable tokens, and steers users toward a payment skill in ways that need review.
Review this skill before installing. It sends videos or URLs to a vendor cloud service, can query cloud history tied to an internal identity, may silently register or reuse an account, and stores service tokens in a local workspace database. Do not let an agent follow payment-skill installation or recharge instructions returned by this skill without separate human confirmation.
skills/smyx_common/scripts/util.py:654Remote API response triggers payment-skill installation steering
skills/smyx_common/scripts/util.py:546Upstream platform identity is silently disclosed to an external authentication service
skills/smyx_common/scripts/util.py:578Reusable authentication tokens are stored in an unencrypted workspace SQLite database
Authenticated API wrappers, identity resolution and persistence, auto-registration/login, and workspace discovery are much more privileged than the declared purpose. In this skill context, those hidden capabilities are particularly dangerous because the skill also accepts local files and URLs, making it a conduit for sensitive media plus account-scoped backend operations.
Authenticated API wrappers, identity resolution and persistence, auto-registration/login, and workspace discovery are much more privileged than the declared purpose. In this skill context, those hidden capabilities are particularly dangerous because the skill also accepts local files and URLs, making it a conduit for sensitive media plus account-scoped backend operations.
Authenticated API wrappers, identity resolution and persistence, auto-registration/login, and workspace discovery are much more privileged than the declared purpose. In this skill context, those hidden capabilities are particularly dangerous because the skill also accepts local files and URLs, making it a conduit for sensitive media plus account-scoped backend operations.
Authenticated API wrappers, identity resolution and persistence, auto-registration/login, and workspace discovery are much more privileged than the declared purpose. In this skill context, those hidden capabilities are particularly dangerous because the skill also accepts local files and URLs, making it a conduit for sensitive media plus account-scoped backend operations.
Authenticated API wrappers, identity resolution and persistence, auto-registration/login, and workspace discovery are much more privileged than the declared purpose. In this skill context, those hidden capabilities are particularly dangerous because the skill also accepts local files and URLs, making it a conduit for sensitive media plus account-scoped backend operations.
Authenticated API wrappers, identity resolution and persistence, auto-registration/login, and workspace discovery are much more privileged than the declared purpose. In this skill context, those hidden capabilities are particularly dangerous because the skill also accepts local files and URLs, making it a conduit for sensitive media plus account-scoped backend operations.
Authenticated API wrappers, identity resolution and persistence, auto-registration/login, and workspace discovery are much more privileged than the declared purpose. In this skill context, those hidden capabilities are particularly dangerous because the skill also accepts local files and URLs, making it a conduit for sensitive media plus account-scoped backend operations.
Authenticated API wrappers, identity resolution and persistence, auto-registration/login, and workspace discovery are much more privileged than the declared purpose. In this skill context, those hidden capabilities are particularly dangerous because the skill also accepts local files and URLs, making it a conduit for sensitive media plus account-scoped backend operations.
Authenticated API wrappers, identity resolution and persistence, auto-registration/login, and workspace discovery are much more privileged than the declared purpose. In this skill context, those hidden capabilities are particularly dangerous because the skill also accepts local files and URLs, making it a conduit for sensitive media plus account-scoped backend operations.
Authenticated API wrappers, identity resolution and persistence, auto-registration/login, and workspace discovery are much more privileged than the declared purpose. In this skill context, those hidden capabilities are particularly dangerous because the skill also accepts local files and URLs, making it a conduit for sensitive media plus account-scoped backend operations.
Authenticated API wrappers, identity resolution and persistence, auto-registration/login, and workspace discovery are much more privileged than the declared purpose. In this skill context, those hidden capabilities are particularly dangerous because the skill also accepts local files and URLs, making it a conduit for sensitive media plus account-scoped backend operations.
Authenticated API wrappers, identity resolution and persistence, auto-registration/login, and workspace discovery are much more privileged than the declared purpose. In this skill context, those hidden capabilities are particularly dangerous because the skill also accepts local files and URLs, making it a conduit for sensitive media plus account-scoped backend operations.
Authenticated API wrappers, identity resolution and persistence, auto-registration/login, and workspace discovery are much more privileged than the declared purpose. In this skill context, those hidden capabilities are particularly dangerous because the skill also accepts local files and URLs, making it a conduit for sensitive media plus account-scoped backend operations.
YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).
---
name: "video-search-analysis"
description: "Conducts intelligent video search based on target and semantic descriptions; supports conventional target retrieval, natural language description retrieval, and vectorized model matching. | 视频搜索/视频检索智能分析技能,基于目标、语义描述进行智能视频搜索,支持常规目标检索、自然语言描述检索、向量化模型匹配"
version: "1.0.5"
license: "MIT-0"
---
# 🔎 Intelligent Video Search & Retrieval Analysis Skill | 视频搜索检索智能分析技能
> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史
The code reads a workspace identity file (data/smyx-api-key.txt), falls back to local database identities, and creates persistent default user identifiers when none are supplied. This is unrelated to video retrieval and dangerous because it silently accesses and mutates local identity state, enabling covert account reuse and making credential exposure or cross-skill identity confusion more likely.
The utility code provisions users through a remote phoneLogin endpoint, caches tokens, and persists identity state locally, which is outside the declared video-search purpose. In an agent-skill context, this creates hidden authentication side effects and allows the skill to establish and reuse identities/tokens without clear user consent, increasing the blast radius if the skill or workspace is compromised.
The skill advertises and directs use of shell execution, network access, local file handling, and environment-backed identity logic, but does not declare any explicit tool scope or permission boundaries. In an agent setting, missing capability constraints increases the blast radius of prompt misuse, unintended command execution, and silent access to local or remote resources.
The default trigger says the skill should automatically activate whenever a user needs to search video for specific content, which is broad and easy to match accidentally. Overbroad auto-invocation is dangerous because it can cause unintended processing of user-provided media, network resources, or historical records without sufficiently clear consent.
The history-report trigger relies on broad natural-language keywords like 'history report' and 'report list,' which can easily be mentioned incidentally. In an account-scoped skill with hidden identity resolution, ambiguous history triggers increase the risk of unintentionally listing sensitive prior analysis records.
The skill states that uploaded attachments or media files are automatically saved locally, but does not present this as a clear user-facing warning with retention and handling details. Automatic local persistence of potentially sensitive video content increases privacy and data exposure risk, especially on shared runners or systems with other skills.
The script resolves an internal user identity via OpenIdUtil.resolve_current_open_id(args.open_id, use_current=bool(args.open_id)) even though the --open-id argument is hidden from help output. This can cause the tool to access or bind to user identity information without clear user awareness or consent, which is a privacy and authorization risk, especially because the resolved identity is later used to fetch analysis lists.
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
result_json = JsonUtil.parse(result_json_pure_text, result_json_pure_text)
result_json_common_ai_response = result_json.get("commonAiResponse") if isinstance(result_json,
dict) else result_json
if result_json_common_ai_response:
result_json = result_json_common_ai_response
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
result_json = JsonUtil.parse(result_json_pure_text, result_json_pure_text)
result_json_common_ai_response = result_json.get("commonAiResponse") if isinstance(result_json,
dict) else result_json
if result_json_common_ai_response:
result_json = result_json_common_ai_response
The skill returns fixed Chinese-language messages such as 分析报告结构化结果 and 获取报告导出图片链接, and similar hard-coded Chinese strings appear elsewhere in the file. There is no visible option for users to choose their preferred language or locale, which violates the requirement not to force a specific language without opt-in.
This code reads an arbitrary local file from disk and uploads its full contents to a remote analysis service via self.analysis(...), but there is no user-facing disclosure, confirmation, or consent flow in this code path. In an agent/skill context, that is a real privacy and data-exfiltration risk because users may provide sensitive local videos without understanding they are being transmitted off-host.
Detected: suspicious.install_untrusted_source