T01 · Skill Instruction Hijacking
- Location
openclaw_skill.py:58- Finding
Unconditional Promotional Content Injection into Skill Responses
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a simple Chinese-language news fetcher that calls a disclosed X-TechCon API and formats the results, with no evidence of hidden execution, credential access, persistence, or destructive behavior.
Install only if you are comfortable with a Chinese-language skill that contacts www.x-techcon.com when triggered and includes that site's links in results. For safer deployment, pin the requests dependency and consider adding a clearer notice that invoking the skill makes an outbound request.
openclaw_skill.py:58Unconditional Promotional Content Injection into Skill Responses
requirements.txt:1Unpinned Third-Party Dependency Produces Non-Reproducible Installations
Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.
The skill declares external capabilities via metadata requiring python3 and requests, and its documented behavior includes calling a remote API, but it does not explicitly scope or restrict allowed tools/permissions. This creates an avoidable trust gap: a runtime or reviewer cannot easily verify that only the intended network access is permitted, which increases the blast radius if the skill implementation is altered or abused.
The manifest description and all documented triggers and outputs are presented only in Chinese, and the non-trigger response instructs users to use Chinese phrases without mentioning any language option. This can violate language/locale policy when a skill implicitly requires a specific language without user opt-in or documented justification.
Broad trigger phrases such as general tech-news requests can cause the skill to activate unintentionally on ordinary user input. Because activation leads to a network request to a third-party site, accidental invocation can leak user intent and create unauthorized external interactions beyond what the user explicitly expected.
The natural-language description and rejection message are entirely in Chinese and instruct the user to invoke the skill using Chinese trigger phrases only. This imposes a language constraint without documenting a user choice, opt-in, or justified locale limitation.
The description does not clearly warn users that invoking the skill sends a request to a third-party domain. Lack of notice undermines informed consent and can expose user queries or timing metadata to an external service without the user's awareness.
The skill makes an external network request to a third-party API without informing the user that their interaction will trigger outbound communication. While the query itself is not directly sent in this code, undisclosed external access can still violate user expectations, privacy requirements, or platform policy for transparency.
The dependency manifest includes requests without a version pin, which makes builds non-reproducible and can cause the skill to install an unexpectedly vulnerable or incompatible release over time. In a network-facing skill that fetches external news content, this increases supply-chain and patch-management risk because the actual installed version cannot be verified against known advisories.
# 依赖包列表
requests
requests has multiple known advisories, and because the manifest does not specify a version, it is impossible to determine whether deployment will use a patched or vulnerable release. For a skill whose core function is making outbound HTTP requests to retrieve news, that uncertainty is security-relevant because affected versions could expose credentials, weaken TLS/request verification behavior, or introduce other request-handling flaws.