T09 · Insecure Skill Coding Practices
- Location
scripts/fetch-car-specs.py:34- Finding
Unvalidated Scraped URLs Allow Unintended Outbound Requests
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a legitimate car-spec crawler, but it needs Review because its crawler can follow scraped or redirected URLs outside the stated auto sites.
Install only if you are comfortable with a crawler making live web requests. Prefer running it in a restricted environment, avoid sensitive networks, review output paths before using --output, and pin dependencies before installing missing packages.
scripts/fetch-car-specs.py:34Unvalidated Scraped URLs Allow Unintended Outbound Requests
scripts/fetch-car-specs.py:13Dependency Installation Guidance Uses Unpinned Packages
The skill documents network access and local file output behavior but does not declare any explicit tool scope or permissions boundaries. In an agent environment, this can lead to overbroad execution privileges, making it easier for the skill to perform unintended network requests or write files beyond what a user reasonably expects.
The skill instructs users to save crawler output to a local file but provides no warning about overwriting existing files or modifying local data. While the example itself is not inherently malicious, absent safeguards can cause accidental data loss or unexpected writes when the output path is user-controlled or reused.
The module docstring explicitly states that the crawler fetches specifications from Chinese auto websites, and the rest of the script is built around Chinese-language sources and output labels. This imposes a specific locale/language context without any opt-in or alternative, which matches the policy concern for forced language or locale behavior.
The manifest frames the skill as a crawler for collecting vehicle configuration data from automotive websites. In addition to fetching and formatting results, the code accepts an output path and writes JSON results to disk, which is a behavior beyond the manifest's stated 'fetch' scope rather than an obvious requirement of crawling itself.
No suspicious patterns detected.