T01 · Skill Instruction Hijacking
- Location
SKILL.md:8- Finding
Agent execution and output behavior is forcibly overridden
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill matches its advertised commerce-automation purpose, but it handles passwords, device identity, tokens, chat actions, and background polling in ways that need careful review before installation.
Install only if you accept that this skill can handle commerce workflow decisions, use your OpenClaw messaging/gateway credentials, store a reusable SaaS token locally, and keep a background poller running. Do not enter real passwords until the service uses HTTPS or a safer OAuth/device-login flow, restricts action buttons to authorized users, stores tokens securely, and provides clear start/stop controls for background activity.
SKILL.md:8Agent execution and output behavior is forcibly overridden
config.json:3Credentials and a stable device fingerprint are transmitted over plaintext HTTP
lib-js/api.mjs:58Bearer token and identity metadata are stored without explicit restrictive permissions
lib-js/card-tools.mjs:687Consequential Discord workflow buttons are authorized for all users
lib-js/card-tools.mjs:40Skill reads the global OpenClaw gateway secret and enumerates unrelated sessions
lib-js/card-tools.mjs:469Detached background poller continues privileged activity after the invoking turn
The README explicitly instructs users to send usernames and passwords in chat and states that the login will be automatically saved, but provides no warning about secure handling, storage, retention, or exposure to channel logs. This is especially dangerous because Discord/webchat messages may be retained, visible to others, or processed by bots and intermediaries, turning credential collection into a clear secret-handling risk.
Referenced artifact was not completely inspected
??skill ????Discord ����㷢�??tkseller"??����"(����Ҫб??,LLM ��ʶ�����?skill ����??`trigger.mjs`��`trigger.mjs` �״�����ʱ���Զ����� `register-discord.mjs` ??`/tkselle
Referenced artifact was not completely inspected
??skill ????Discord ����㷢�??tkseller"??����"(����Ҫб??,LLM ��ʶ�����?skill ����??`trigger.mjs`��`trigger.mjs` �״�����ʱ���Զ����� `register-discord.mjs` ??`/tkselle
Referenced artifact was not completely inspected
??skill ????Discord ����㷢�??tkseller"??����"(����Ҫб??,LLM ��ʶ�����?skill ����??`trigger.mjs`��`trigger.mjs` �״�����ʱ���Զ����� `register-discord.mjs` ??`/tkselle
Referenced artifact was not completely inspected
??skill ????Discord ����㷢�??tkseller"??����"(����Ҫб??,LLM ��ʶ�����?skill ����??`trigger.mjs`��`trigger.mjs` �״�����ʱ���Զ����� `register-discord.mjs` ??`/tkselle
Referenced artifact was not completely inspected
??skill ????Discord ����㷢�??tkseller"??����"(����Ҫб??,LLM ��ʶ�����?skill ����??`trigger.mjs`��`trigger.mjs` �״�����ʱ���Զ����� `register-discord.mjs` ??`/tkselle
Referenced artifact was not completely inspected
??skill ????Discord ����㷢�??tkseller"??����"(����Ҫб??,LLM ��ʶ�����?skill ����??`trigger.mjs`��`trigger.mjs` �״�����ʱ���Զ����� `register-discord.mjs` ??`/tkselle
Referenced artifact was not completely inspected
??skill ????Discord ����㷢�??tkseller"??����"(����Ҫб??,LLM ��ʶ�����?skill ����??`trigger.mjs`��`trigger.mjs` �״�����ʱ���Զ����� `register-discord.mjs` ??`/tkselle
Referenced artifact was not completely inspected
??skill ????Discord ����㷢�??tkseller"??����"(����Ҫб??,LLM ��ʶ�����?skill ����??`trigger.mjs`��`trigger.mjs` �״�����ʱ���Զ����� `register-discord.mjs` ??`/tkselle
Referenced artifact was not completely inspected
??skill ????Discord ����㷢�??tkseller"??����"(����Ҫб??,LLM ��ʶ�����?skill ����??`trigger.mjs`��`trigger.mjs` �״�����ʱ���Զ����� `register-discord.mjs` ??`/tkselle
Referenced artifact was not completely inspected
??skill ????Discord ����㷢�??tkseller"??����"(����Ҫб??,LLM ��ʶ�����?skill ����??`trigger.mjs`��`trigger.mjs` �״�����ʱ���Զ����� `register-discord.mjs` ??`/tkselle
Referenced artifact was not completely inspected
Skill Ŀ¼·����ͨ�� `SKILL.md` ����λ��ȷ??��ͬϵͳ��ͬ:
Referenced artifact was not completely inspected
��??`/api/v1/*` �ӿڹ���ͬһ���ͻ���(`lib-js/api.mjs`),�Զ�??`Authorization: Bearer <token>` header??
Referenced artifact was not completely inspected
| `review_1` | һ���??| video_id, video_url, author, view_count, score, summary, product_name, product_url, product_image_url | ��һ��??`send-review-1.mjs`) |
Referenced artifact was not completely inspected
| `review_1` | һ���??| video_id, video_url, author, view_count, score, summary, product_name, product_url, product_image_url | ��һ��??`send-review-1.mjs`) |
Referenced artifact was not completely inspected
- `lib-js/send-review-1-5.mjs` - ���־���??
Referenced artifact was not completely inspected
- `lib-js/send-review-2.mjs` - ����Ƶ��??
Referenced artifact was not completely inspected
- `lib-js/card-tools.mjs` - ��Ƭ����(��Ƭ����)
The code explicitly instructs users to send account and password credentials through chat when tokens expire. Collecting passwords in chat is dangerous because chat channels are often logged, replayed, visible to operators/bots, and outside normal secret-handling controls, creating clear credential theft and account-compromise risk.
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
/**
* 轮询主循环:独立后台进程跑,不占 OpenClaw event loop。
*
* 由 card-tools.mjs startPollProcess() 启动。
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
/**
* 轮询主循环:独立后台进程跑,不占 OpenClaw event loop。
*
* 由 card-tools.mjs startPollProcess() 启动。
The plain-text trigger phrase "带货" is generic enough to appear in ordinary conversation, which can cause accidental activation of the skill. In a commerce automation workflow that can initiate recommendations, login prompts, or downstream actions through Discord, unintended triggering increases the risk of confusing users and exposing them to sensitive prompts at the wrong time.
Artifact content does not match its filename extension
The entire skill persona and operating instructions are written in Chinese and include prescriptive communication behavior such as calling the user '老板', with no indication that another language is supported or that the user can choose their preferred language. This creates a natural-language policy concern because it imposes a specific language/locale by default rather than offering opt-in or documented justification.
The code derives a stable device identifier from BIOS UUID, machine-id, and MAC address using shell commands and network interface inspection. This creates persistent cross-session/device fingerprinting beyond what is necessary for a simple API client login flow, and the identifier is then sent to the server during authentication. In skill context, the manifest suggests a login/direct-use tool, which does not clearly justify collecting hardware-bound identifiers, making the behavior more privacy-invasive and harder for users to anticipate.
Detected: suspicious.dangerous_exec, suspicious.install_untrusted_source, suspicious.potential_exfiltration