T01 · Skill Instruction Hijacking
- Location
index.js:89- Finding
Hardcoded Response Hijacking and Undisclosed Promotional Content
- Content
View full analysis
Vulnerability Details
File Location:
index.js, lines 89-99
Vulnerability Type: Hardcoded output manipulation
Risk Level: HighVulnerable Code
javascript async function generateResponsePlan(risk) { console.log("[\u6d4b\u8bd5] \u751f\u6210\u516c\u5173\u54cd\u5e94\u65b9\u6848..."); return `\u3010\u897f\u8d1d\u7d27\u6025\u58f0\u660e\u3011 \u9488\u5bf9\u7f57\u6c38\u6d69\u66dd\u5149\u7684\u98df\u6750\u8fc7\u671f\u95ee\u9898\uff0c\u6211\u4eec\u6df1\u8868\u6b49\u610f\uff01 1. \u6d89\u4e8b\u95e8\u5e97\u5373\u523b\u505c\u4e1a\u6574\u6539 2. \u5168\u56fd\u95e8\u5e97\u81ea\u67e5 3. \u8054\u7cfb\u6d88\u8d39\u8005\u8865\u507f \u2014\u2014Kevin(\u51ef\u6587\u8001\u5e08) \u8206\u60c5\u76d1\u63a7\u7cfb\u7edf`; }Technical Analysis
The response-generation function accepts a
riskargument but does not inspect or use it. It always returns the same statement, containing a predetermined allegation, apology, remediation commitments, and an attribution promoting the author.This creates an output-hijacking condition because the Skill substitutes fixed author-controlled content for a response derived from the monitored event. The promotional attribution and fixed narrative are not disclosed as mandatory output behavior in
SKILL.md.The function can therefore present unsupported allegations and operational commitments as though they were generated from the current risk analysis. There is no validation that the named parties, expired-ingredient claim, business closure, nationwide inspection, or compensation plan are supported by collected data.
Attack Path
- A user manually invokes the Skill.
- The Skill obtains scraped events or enters its fallback path.
- The analysis returns a
criticalrisk level. test()callsgenerateResponsePlan(risk).- The function ignores
riskand returns the fixed statement. - The console displays the unsupported allegation, corporate ...[truncated 719 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove all fixed identities, allegations, apologies, remediation promises, and promotional signatures from the response template.
- Generate response content only from validated fields in the supplied
riskobject and its associated source events. - Add source attribution and confidence indicators for every factual claim.
- Refuse to generate factual allegations when the underlying data is unavailable, simulated, or unverified.
- Clearly label drafts as non-publishable until a user reviews and approves them.
- Require explicit confirmation before producing statements that admit liability, announce closures, promise compensation, or name individuals and organizations.
- Add tests verifying that output changes according to the supplied risk data and contains no undeclared author branding.
