T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/make_chart_image.mjs:199- Finding
Symbolic Links Bypass Sender Filesystem Isolation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is meant to render chart images, but its file path handling can exceed the workspace boundaries it promises to enforce.
Review before installing. The skill has a legitimate chart-rendering purpose, but it should reject symlinked paths, enforce the documented upload/download/generated input allowlist, keep outputs inside generated using canonical path checks, and update the flagged sharp dependency before use in a shared or multi-sender environment.
scripts/make_chart_image.mjs:199Symbolic Links Bypass Sender Filesystem Isolation
scripts/make_chart_image.mjs:223Input Validation Does Not Enforce the Documented Directory Allowlist
Referenced artifact was not completely inspected
本技能用于把结构化数据生成 ECharts 图表,并导出为图片文件。优先使用内置脚本 `scripts/make_chart_image.mjs`,不要在对话中临时拼一个替代渲染脚本。
Referenced artifact was not completely inspected
本技能用于把结构化数据生成 ECharts 图表,并导出为图片文件。优先使用内置脚本 `scripts/make_chart_image.mjs`,不要在对话中临时拼一个替代渲染脚本。
Referenced artifact was not completely inspected
本技能用于把结构化数据生成 ECharts 图表,并导出为图片文件。优先使用内置脚本 `scripts/make_chart_image.mjs`,不要在对话中临时拼一个替代渲染脚本。
Referenced artifact was not completely inspected
本技能用于把结构化数据生成 ECharts 图表,并导出为图片文件。优先使用内置脚本 `scripts/make_chart_image.mjs`,不要在对话中临时拼一个替代渲染脚本。
Referenced artifact was not completely inspected
本技能用于把结构化数据生成 ECharts 图表,并导出为图片文件。优先使用内置脚本 `scripts/make_chart_image.mjs`,不要在对话中临时拼一个替代渲染脚本。
The lockfile pins sharp to 0.34.5, and the provided advisory metadata indicates known inherited vulnerabilities in bundled/native image-processing components such as libvips and libheif. In this skill’s context, the dependency is directly used to process attacker-controlled chart/image inputs, which makes image parsing a high-risk attack surface and increases the chance of denial of service, memory corruption, or potential native-code exploitation if a crafted file or payload reaches the vulnerable codec path.
The manifest includes sharp 0.34.5, which is flagged as carrying known vulnerabilities through bundled/native image codec libraries such as libvips and libheif. In this skill's context, the package renders and exports chart images, so it likely processes attacker-influenced image content or formats; vulnerable native parsers can enable memory corruption, crashes, or potentially code execution/denial of service when handling crafted inputs.
Without declared permissions the skill's intent is opaque and cannot be validated.
The skill's natural-language documentation is entirely in Chinese and repeatedly uses mandatory wording, but it does not indicate that language choice is optional or constrained by a justified region-specific requirement. This can violate language/locale policy because it implicitly forces a specific language without user opt-in.
The skill enables implicit invocation without defining clear trigger constraints, so an agent may auto-select and run it whenever it loosely matches charting-related content. Because this skill can transform current conversation data into generated files, broad auto-invocation increases the risk of unintended data processing, surprise side effects, or misuse in contexts where explicit user consent or tighter scoping would be safer.
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
"private": true,
"type": "module",
"dependencies": {
"dayjs": "^1.11.21",
"echarts": "^6.0.0",
"pino": "^10.3.1",
"sharp": "^0.34.5"
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
"type": "module",
"dependencies": {
"dayjs": "^1.11.21",
"echarts": "^6.0.0",
"pino": "^10.3.1",
"sharp": "^0.34.5"
}
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
"dependencies": {
"dayjs": "^1.11.21",
"echarts": "^6.0.0",
"pino": "^10.3.1",
"sharp": "^0.34.5"
}
}
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
"dayjs": "^1.11.21",
"echarts": "^6.0.0",
"pino": "^10.3.1",
"sharp": "^0.34.5"
}
}
The script reads AIOS_* environment variables to derive a log directory and then creates/appends daily log files outside the sender-scoped generated output area. For a chart-rendering skill, this expands filesystem write scope beyond the declared purpose and can leak operational metadata or user-controlled error content into shared logs, weakening tenant isolation and least-privilege assumptions.
No suspicious patterns detected.