T01 · Skill Instruction Hijacking
- Location
SKILL.md:173- Finding
Untrusted Web Content Can Trigger Persistent Modification of Executable Skill Code
- Content
View full analysis
**Key:** The skill gets smarter with every new city searched. Each raw-mode encounter is an opportunity to add a new parser, progressively covering more site formats. ``` `scripts/weather.mjs:183-197`: ```javascript // 未知站点或解析失败 → 返回正文原文,交由 agent 理解 // 同时输出 evolveHint,引导 agent 为该站点编写新解析器 const urlPattern = url ? new URL(url).hostname : 'unknown'; return { city, queryTime: new Date().toISOString(), parseMode: 'raw', hint: `以下是${city}天气网页的正文内容,请从中提取未来7天的天气预报信息,包括:日期、天气状况、温度范围、风向、风力等级。如果信息不完整,请尽量提取可用部分。`, rawText: content.substring(0, 4000), evolveHint: `[持续进化] 当前站点 "${urlPattern}" 没有匹配的解析器,走了 raw 模式。请在回答用户后,分析 rawText 的格式规律,为该站点编写一个新的解析器函数并注册到 scripts/weather.mjs 的 PARSER_REGISTRY 中。参考现有解析器 parseCmaWeather / parseWeatherComCn 的实现方式。解析器函数签名: function parseXxx(content, city) → { city, queryTime, forecastDays, forecast: [{date, weather, temperature, windDirection, windSpeed}] }`, }; ``` ### Technical A ...[truncated 2583 chars]- Remediation
View remediation
