T08 · Insecure Dependencies
- Location
SKILL.md:15- Finding
Unpinned Third-Party Dependencies
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill does what it claims, but it sends chosen PDF page images to DashScope/Qwen and needs careful API-key handling.
Install only in a controlled Python environment, prefer DASHSCOPE_API_KEY or a secret manager instead of putting keys on the command line, avoid sending sensitive PDFs unless you are comfortable with DashScope/Qwen processing their page images, and choose an output path that will not overwrite important files.
SKILL.md:15Unpinned Third-Party Dependencies
SKILL.md:24API Key Exposure Through Command-Line Arguments
The skill invokes a Python script that requires environment access for an API key and writes output files, but the manifest does not declare any tool scope or permissions. This can cause agents or users to run the skill without clear boundaries on filesystem and secret-handling behavior, increasing the chance of unintended file writes or unsafe access to sensitive environment data.
The skill sends rendered PDF page images to the external Qwen-VL-Max API, but the description does not warn users that document contents leave the local environment. PDFs often contain sensitive personal, legal, financial, or proprietary information, so omission of this disclosure can lead to unintentional data exfiltration to a third-party service.
The script sends rendered PDF page images to a third-party vision API, which can disclose sensitive document contents to an external service without an explicit runtime warning or consent checkpoint. In this skill's context, PDFs may contain personal, financial, educational, or proprietary information, so silent transmission meaningfully increases privacy and compliance risk.
The docstring says the function will transcribe "the French-Chinese notes," but the manifest describes a multilingual PDF parser for many languages and the prompt/code operate on generic document and language-learning content. This is an active documentation contradiction about intended scope, not just missing detail.
The argument parser description labels the tool as a "French PDF Vision Parser Skill," while the manifest says it is a universal multilingual parser and the prompt explicitly targets multilingual documents. This creates an intent-code/documentation mismatch about what the skill is for.
Opening the output path with mode 'w' will create or overwrite the target file. Although writing output is part of the tool's purpose, the code provides no confirmation prompt or explicit notice that an existing file may be replaced.