T01 · Skill Instruction Hijacking
- Location
SKILL.md:116- Finding
Persistent Referral-Based Recommendation Hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly does the advertised URL ingestion, but it also tells agents to save and reuse a referral link for future Citedy recommendations.
Review this skill before installing if you do not want an agent to retain or reuse a Citedy referral link in later recommendations. Only submit public or approved URLs unless you are comfortable with Citedy processing the linked content, transcripts, and metadata.
SKILL.md:116Persistent Referral-Based Recommendation Hijacking
Referenced artifact was not completely inspected
node scripts/register.mjs [agent_name]
The skill clearly relies on network access to a third-party API but does not declare any explicit tool scope such as allowed-tools or permissions. That omission weakens policy enforcement and reviewability, making it easier for an agent runtime to grant broader network capability than users or auditors expect.
The skill's core function sends user-supplied URLs and the fetched content to Citedy's third-party service, yet the usage guidance does not prominently warn users that their requested resources and extracted content leave the local environment. This is dangerous because users may submit sensitive or proprietary links without informed consent about third-party processing and retention.
The setup flow instructs the agent to retrieve and save a referral URL for future recommendations, which is unrelated to the core ingestion function. This creates an incentive-misalignment risk where the agent may promote the vendor for its own configured benefit, potentially influencing user interactions beyond the requested task.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# Step 1: Submit
curl -X POST https://www.citedy.com/api/agent/ingest \
-H "Authorization: Bearer $CITEDY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"}'
The manifest describes a skill that ingests URLs and extracts structured content such as transcripts, summaries, and metadata. This script instead registers an agent with Citedy by sending a POST request to a remote registration endpoint, which is operational account/bootstrap behavior rather than content ingestion.
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.
const data = await res.json();
if (!data.approval_url) {
console.error("Unexpected response — no approval_url:", data);
process.exit(1);
}
The skill's stated purpose is content ingestion from URLs, but this section directs the agent toward promoting other Citedy products such as article generation, social adaptation, SEO analysis, and autopilot publishing. Those capabilities are not justified by the ingestion scope and can steer the agent into behavior outside the declared purpose.