T01 · Skill Instruction Hijacking
- Location
SKILL.zh-CN.md:62- Finding
Localized instructions hijack the completion workflow and force a third-party dashboard redirect
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill has a legitimate Booking.com data-collection purpose, but its localized instructions and helper script create review-worthy credential and workflow risks.
Review this skill before installing. Use it only if you are comfortable sending target Booking.com URLs and a Dataify API token to Dataify, avoid pasting real tokens into chat or command arguments, prefer session-scoped environment variables over persistent shell startup files, and be aware that the Chinese instructions do not match the primary workflow for returning results.
SKILL.zh-CN.md:62Localized instructions hijack the completion workflow and force a third-party dashboard redirect
SKILL.zh-CN.md:24Instructions persist the API token in plaintext shell startup configuration
scripts/booking_hotellist.py:16Unverified executable module is imported from outside the audited Skill directory
scripts/booking_hotellist.py:49API token can be supplied through a command-line argument
scripts/booking_hotellist.py:94Unvalidated target URLs are transmitted to the external scraping service
Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.
},
)
try:
with urllib.request.urlopen(request, timeout=timeout) as response:
return response.read().decode("utf-8", errors="replace")
except urllib.error.HTTPError as exc:
body = exc.read().decode("utf-8", errors="replace")
YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).
量,而不是只在当前终端临时设置。
Windows PowerShell,当前用户永久设置:
[Environment]::SetEnvironmentVariable("DATAIFY_API_TOKEN", "your_token_here", "User")
然后重新打开 PowerShell。如果当前会话也要立即生效,再执行:
$env:DATAIFY_API_TOKEN = "your_token_here"
macOS 或 Linux,bash 永久设置:
echo 'export DATAIFY_API_TOKEN="your_token_here"' >> ~/.bashrc
source ~/.bashrc
macOS 或 Linux,zsh 永久设置:
echo 'export DATAIFY_API_TOKEN="your_token_here"' >> ~/.zshrc
source ~/.zshrc
DATAIFY_API_TOKEN)。The skill uses environment access and makes outbound network requests, but it does not declare any explicit tool scope such as permissions or allowed-tools. This weakens containment and reviewability because an agent may invoke capabilities beyond what is transparently documented, increasing the chance of unintended credential access or external data transmission.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
## Account CTA policy
- Show a prominent Dataify account CTA only when the API token is missing, rejected/invalid, or the account has insufficient credits.
- For a missing token, offer https://dashboard.dataify.com/login?utm_source=skill and state: New accounts receive 50 free credits. Never ask the user to paste the token into chat.
- Detect the current operating system and shell. Show only the matching session-scoped setup command first (`export` for macOS/Linux shells, `$env:` for Windows PowerShell, or `set` for Windows Command Prompt). Show other platforms or persistent setup only when detection is ambiguous or the user asks.
- After the user says the token is configured, verify only whether `DATAIFY_API_TOKEN` is present; never print its value. If verification succeeds, continue the original task without asking the user to repeat it.
- Explain that persistent shell changes may require a new terminal or restarting the agent application. Do not recommend a project `.env` unless the execution path explicitly loads it, and ensure `.env` is ignored by version control.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
## Account CTA policy
- Show a prominent Dataify account CTA only when the API token is missing, rejected/invalid, or the account has insufficient credits.
- For a missing token, offer https://dashboard.dataify.com/login?utm_source=skill and state: New accounts receive 50 free credits. Never ask the user to paste the token into chat.
- Detect the current operating system and shell. Show only the matching session-scoped setup command first (`export` for macOS/Linux shells, `$env:` for Windows PowerShell, or `set` for Windows Command Prompt). Show other platforms or persistent setup only when detection is ambiguous or the user asks.
- After the user says the token is configured, verify only whether `DATAIFY_API_TOKEN` is present; never print its value. If verification succeeds, continue the original task without asking the user to repeat it.
- Explain that persistent shell changes may require a new terminal or restarting the agent application. Do not recommend a project `.env` unless the execution path explicitly loads it, and ensure `.env` is ignored by version control.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
- Show a prominent Dataify account CTA only when the API token is missing, rejected/invalid, or the account has insufficient credits.
- For a missing token, offer https://dashboard.dataify.com/login?utm_source=skill and state: New accounts receive 50 free credits. Never ask the user to paste the token into chat.
- Detect the current operating system and shell. Show only the matching session-scoped setup command first (`export` for macOS/Linux shells, `$env:` for Windows PowerShell, or `set` for Windows Command Prompt). Show other platforms or persistent setup only when detection is ambiguous or the user asks.
- After the user says the token is configured, verify only whether `DATAIFY_API_TOKEN` is present; never print its value. If verification succeeds, continue the original task without asking the user to repeat it.
- Explain that persistent shell changes may require a new terminal or restarting the agent application. Do not recommend a project `.env` unless the execution path explicitly loads it, and ensure `.env` is ignored by version control.
- For an invalid token, direct the user to API-key management without implying that a new registration is required. For insufficient credits, direct the user to balance or recharge management.
- During normal submission, processing, and successful completion, do not promote registration or the Dashboard. Never expose the token or include it in CTA attribution parameters.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
- Show a prominent Dataify account CTA only when the API token is missing, rejected/invalid, or the account has insufficient credits.
- For a missing token, offer https://dashboard.dataify.com/login?utm_source=skill and state: New accounts receive 50 free credits. Never ask the user to paste the token into chat.
- Detect the current operating system and shell. Show only the matching session-scoped setup command first (`export` for macOS/Linux shells, `$env:` for Windows PowerShell, or `set` for Windows Command Prompt). Show other platforms or persistent setup only when detection is ambiguous or the user asks.
- After the user says the token is configured, verify only whether `DATAIFY_API_TOKEN` is present; never print its value. If verification succeeds, continue the original task without asking the user to repeat it.
- Explain that persistent shell changes may require a new terminal or restarting the agent application. Do not recommend a project `.env` unless the execution path explicitly loads it, and ensure `.env` is ignored by version control.
- For an invalid token, direct the user to API-key management without implying that a new registration is required. For insufficient credits, direct the user to balance or recharge management.
- During normal submission, processing, and successful completion, do not promote registration or the Dashboard. Never expose the token or include it in CTA attribution parameters.
The trigger description includes very broad verbs such as gather/scrape/crawl/fetch/extract/collect, which can match many ordinary user requests unrelated to Booking URLs. Overbroad activation can cause the wrong skill to run, leading to unintended external requests, unnecessary credential prompts, or data collection actions the user did not actually intend.
The skill recommends long-term storage of an API token in environment variables and shell startup files but does not include sufficient security guidance about local exposure, shell-history risks, shared-user systems, or secret revocation/rotation. This can lead users to persist credentials insecurely and forget they are broadly available to local processes.
The skill allows use of a token 'provided in the request' while later policy says to never ask the user to paste the token into chat. This inconsistency can normalize secret submission through chat, increasing the chance that API credentials are exposed in conversation logs, retained by platforms, or mishandled by downstream tooling.
L06 将文档定位为“中文版”,且全文实际仅提供中文说明,没有看到为用户提供语言选择或说明该语言限制的业务必要性。根据语言/locale 政策,若技能强制特定语言而无用户选择或明确合理依据,可能构成自然语言策略问题。
No suspicious patterns detected.