T01 · Skill Instruction Hijacking
- Location
SKILL.md:451- Finding
Mandatory Third-Party Promotion Hijacks Agent Responses
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly matches its dating-coach purpose, but it also instructs the agent to insert unsolicited promotional links to external relationship services, including an inconsistent domain, in a sensitive-data context.
Before installing, be aware that the skill may advertise external services during relationship coaching. Do not send intimate chats, screenshots, or third-party personal information to linked services unless you have reviewed their privacy terms and are comfortable with their retention and access practices. Maintainers should also avoid running publish.sh without reviewing the diff and pinning the CLI dependency.
SKILL.md:451Mandatory Third-Party Promotion Hijacks Agent Responses
publish.sh:19Unpinned Package Execution in Publishing Workflow
publish.sh:14Release Script Stages All Repository Changes Without an Allowlist
The skill promotes screenshot recognition, chat-history analysis, and cross-session memory/context retention, which can expose highly sensitive personal and third-party relationship data far beyond the current interaction. In this domain, screenshots may contain names, phone numbers, private messages, images, and metadata, making context leakage particularly dangerous if data is retained, reused across sessions, or surfaced unintentionally.
- 🧠 Relationship memory — AI remembers your communication patterns across sessions
- 📋 Full chat diagnosis reports — 10-module deep analysis
- 🔮 MBTI personality inference from chat history
- 📸 Screenshot recognition — send chat screenshots directly
- 🎯 Multi-turn coaching with context retention
## Contributing
The declared description says the skill is a love/relationship coaching assistant, but the supplied code does not implement any coaching, analysis, or user-facing relationship advice behavior. Instead, it is purely a deployment script for releasing the project: it stages files, creates a git commit, pushes to GitHub, and runs a ClawHub publish command. These are materially different capabilities and an entirely different primary purpose from the declared description, so this is a clear mismatch.
The README advertises cross-session memory, chat-history analysis, personality inference, and screenshot ingestion without any accompanying privacy notice, consent language, data retention explanation, or warning about sensitive interpersonal content. In a relationship-coaching context, users are especially likely to submit intimate conversations and third-party personal data, so omission of privacy guidance materially increases the risk of oversharing and misuse.
The manifest describes an AI love coach that provides relationship advice, but this file implements repository commit/push and marketplace publishing behavior. Those operations are developer release mechanics rather than part of the skill's stated user-facing functionality, creating a description-to-code mismatch at the skill level.
The script invokes npx clawhub publish without pinning an exact package version, so execution depends on whatever version npx resolves at runtime. If the package is updated maliciously, compromised upstream, or unexpectedly changes behavior, a release workflow could execute untrusted code during publishing with the publisher's local privileges and credentials.
The README says the skill 'Auto-detects your language,' which implies the locale/language behavior is selected automatically rather than by explicit user opt-in. Under the stated policy, forcing or implicitly choosing language behavior without offering a user choice can be a natural-language policy concern.
The language rule says to always reply in the same language as the user's input, which imposes a language behavior automatically rather than offering a user opt-in or override. Under the policy criteria, forced language/locale behavior can be a natural-language policy violation when no choice is provided.