T09 · Insecure Skill Coding Practices
- Location
skills/smyx_common/scripts/config-dev.yaml:2- Finding
Sensitive infant media and authentication credentials transmitted over plaintext HTTP
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill appears to be a cloud-based infant video analysis tool, but it ships with risky identity, history, credential, and plaintext network behavior that needs review before installation.
Install only after confirming you are comfortable uploading infant videos to this provider, using automatic account identity/history features, and accepting local credential persistence. The publisher should switch release configuration to HTTPS production endpoints, remove silent credential storage or use a secure secret store, narrow triggers, and clearly document consent, retention, and history-access controls.
skills/smyx_common/scripts/config-dev.yaml:2Sensitive infant media and authentication credentials transmitted over plaintext HTTP
skills/smyx_common/scripts/util.py:580Reusable authentication tokens persisted unencrypted in a workspace SQLite database
The skill is described as a baby-monitor risk detector, but the underlying behaviors include remote API communication, automatic account/login flows via phone/openId, local filesystem access, token management, and workspace manipulation. These undeclared capabilities materially expand the blast radius from simple analysis to identity handling and persistent data access, which is particularly concerning when processing infant-related media and history.
The skill is described as a baby-monitor risk detector, but the underlying behaviors include remote API communication, automatic account/login flows via phone/openId, local filesystem access, token management, and workspace manipulation. These undeclared capabilities materially expand the blast radius from simple analysis to identity handling and persistent data access, which is particularly concerning when processing infant-related media and history.
The skill is described as a baby-monitor risk detector, but the underlying behaviors include remote API communication, automatic account/login flows via phone/openId, local filesystem access, token management, and workspace manipulation. These undeclared capabilities materially expand the blast radius from simple analysis to identity handling and persistent data access, which is particularly concerning when processing infant-related media and history.
The skill is described as a baby-monitor risk detector, but the underlying behaviors include remote API communication, automatic account/login flows via phone/openId, local filesystem access, token management, and workspace manipulation. These undeclared capabilities materially expand the blast radius from simple analysis to identity handling and persistent data access, which is particularly concerning when processing infant-related media and history.
The skill is described as a baby-monitor risk detector, but the underlying behaviors include remote API communication, automatic account/login flows via phone/openId, local filesystem access, token management, and workspace manipulation. These undeclared capabilities materially expand the blast radius from simple analysis to identity handling and persistent data access, which is particularly concerning when processing infant-related media and history.
The skill is described as a baby-monitor risk detector, but the underlying behaviors include remote API communication, automatic account/login flows via phone/openId, local filesystem access, token management, and workspace manipulation. These undeclared capabilities materially expand the blast radius from simple analysis to identity handling and persistent data access, which is particularly concerning when processing infant-related media and history.
The skill is described as a baby-monitor risk detector, but the underlying behaviors include remote API communication, automatic account/login flows via phone/openId, local filesystem access, token management, and workspace manipulation. These undeclared capabilities materially expand the blast radius from simple analysis to identity handling and persistent data access, which is particularly concerning when processing infant-related media and history.
The skill is described as a baby-monitor risk detector, but the underlying behaviors include remote API communication, automatic account/login flows via phone/openId, local filesystem access, token management, and workspace manipulation. These undeclared capabilities materially expand the blast radius from simple analysis to identity handling and persistent data access, which is particularly concerning when processing infant-related media and history.
The skill is described as a baby-monitor risk detector, but the underlying behaviors include remote API communication, automatic account/login flows via phone/openId, local filesystem access, token management, and workspace manipulation. These undeclared capabilities materially expand the blast radius from simple analysis to identity handling and persistent data access, which is particularly concerning when processing infant-related media and history.
The skill is described as a baby-monitor risk detector, but the underlying behaviors include remote API communication, automatic account/login flows via phone/openId, local filesystem access, token management, and workspace manipulation. These undeclared capabilities materially expand the blast radius from simple analysis to identity handling and persistent data access, which is particularly concerning when processing infant-related media and history.
The skill is described as a baby-monitor risk detector, but the underlying behaviors include remote API communication, automatic account/login flows via phone/openId, local filesystem access, token management, and workspace manipulation. These undeclared capabilities materially expand the blast radius from simple analysis to identity handling and persistent data access, which is particularly concerning when processing infant-related media and history.
The skill is described as a baby-monitor risk detector, but the underlying behaviors include remote API communication, automatic account/login flows via phone/openId, local filesystem access, token management, and workspace manipulation. These undeclared capabilities materially expand the blast radius from simple analysis to identity handling and persistent data access, which is particularly concerning when processing infant-related media and history.
The skill is described as a baby-monitor risk detector, but the underlying behaviors include remote API communication, automatic account/login flows via phone/openId, local filesystem access, token management, and workspace manipulation. These undeclared capabilities materially expand the blast radius from simple analysis to identity handling and persistent data access, which is particularly concerning when processing infant-related media and history.
The code derives a persistent identity from workspace files and a local database, and will create a fallback identity if one is missing. For a baby-monitor video analysis skill, silently resolving and persisting user identity is out of scope and increases privacy risk, especially because that identity is later used in remote requests and account registration flows.
This utility implements generic account provisioning and arbitrary HTTP request functionality that is much broader than the declared infant suffocation-risk detection purpose. It can authenticate, attach tokens, inject user identifiers into requests, and send data to configurable endpoints, creating an unnecessary capability for external communication and account actions that could be repurposed to exfiltrate data or operate outside user expectations.
The skill declares no explicit tool scope even though the documented behavior relies on shell execution, filesystem access, environment/config handling, and network calls. This creates an unnecessary trust gap: a reviewer or runtime may not understand the true privileges required, increasing the chance of overbroad execution and abuse if the script or its dependencies are compromised.
The manifest presents the skill as a real-time infant risk detector, but the documented operation centers on file/URL submission and cloud report queries. This misleading integration surface can cause unsafe assumptions about immediacy and reliability of alerts in a context where delayed analysis may have serious consequences.
The default trigger is broad enough to activate on essentially any uploaded crib video, which can cause unexpected processing of sensitive infant footage. Over-triggering is more dangerous here because the content involves minors and may be sent to remote analysis services without sufficiently specific user intent.
The skill includes cloud history querying and automatic reuse/creation of a local user identity that are not justified by the core purpose of visual suffocation-risk detection. In context, these hidden account-linkage features create unnecessary privacy and access-control risk around infant monitoring records.
The automatic history-report trigger uses a broad keyword list, making it too easy to invoke retrieval of prior infant-monitoring reports without deliberate, context-specific intent. Because these reports are likely identity-linked and privacy-sensitive, accidental triggering can expose metadata or report links to the wrong context or user.
The script exposes a hidden --list mode that retrieves analysis history via show_analyze_list(open_id) even though the skill is presented as a real-time infant video analysis tool. That creates an undocumented secondary data-access function which can expose prior user analysis records and expands the attack surface beyond the declared purpose.
The code accepts a hidden open_id parameter and uses global identity state (ConstantEnum.CURRENT__OPEN_ID) to fetch data, despite the stated purpose being local/URL-based infant video risk analysis. Hidden identity handling without clear disclosure or access-control context can enable unauthorized access to another user's records or silent tracking of user activity.
OpenIdUtil.resolve_current_open_id(args.open_id, use_current=bool(args.open_id)) performs internal identity resolution without user-facing disclosure and before normal operation checks. In a monitoring skill handling sensitive infant-related data, undisclosed identity resolution increases privacy risk and may silently bind execution to an internal account context.
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