T09 · Insecure Skill Coding Practices
- Location
scripts/package_json_linter.py:359- Finding
Unescaped Attacker-Controlled Values Enable Terminal and Markdown Report Injection
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a straightforward local package.json linter with no evidence of hidden network access, persistence, destructive actions, or credential handling.
Installers should treat this as a local linting helper. Run it only on project directories you intend to inspect, and prefer JSON output or careful review when linting untrusted repositories because text and Markdown reports may display crafted package metadata misleadingly.
scripts/package_json_linter.py:359Unescaped Attacker-Controlled Values Enable Terminal and Markdown Report Injection
Referenced artifact was not completely inspected
All commands use the bundled Python script at `scripts/package_json_linter.py`.
Referenced artifact was not completely inspected
All commands use the bundled Python script at `scripts/package_json_linter.py`.
Referenced artifact was not completely inspected
All commands use the bundled Python script at `scripts/package_json_linter.py`.
Referenced artifact was not completely inspected
All commands use the bundled Python script at `scripts/package_json_linter.py`.
Referenced artifact was not completely inspected
All commands use the bundled Python script at `scripts/package_json_linter.py`.
The skill advertises shell and file-reading capabilities but does not declare any explicit tool scope such as allowed-tools or permissions. That creates an authorization ambiguity where an agent may invoke broader filesystem or shell access than reviewers and policy expect, increasing the risk of command execution against unintended paths or inputs.
The description says to use the skill when asked to "lint, validate, audit, or check" package.json files and includes triggers such as "check package" and "validate npm." Phrases like "check package" and "validate npm" are ambiguous and broad enough to collide with everyday or unrelated package-management requests, with no negative examples or scope boundaries provided.
No suspicious patterns detected.