T08 · Insecure Dependencies
- Location
SKILL.md:129- Finding
Unpinned Third-Party Package Execution Through npx
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill appears to generate documentation indexes as advertised, with practical cautions around the unpinned TypeScript runner and generated README diffs.
Before running the generator, pin `tsx` in the target project or use a lockfile-backed package script instead of ad hoc `npx`. Use it on trusted documentation inputs where possible, ensure each README has exactly one correctly ordered marker pair, and review generated README diffs before committing or publishing.
SKILL.md:129Unpinned Third-Party Package Execution Through npx
template/generate-doc-index.ts:52Unescaped Document Metadata Injected Into Generated Markdown
template/generate-doc-index.ts:135Unsafe README Replacement When Index Markers Are Reversed or Duplicated
The core intent broadly aligns with generating documentation index tables, but the description materially misrepresents how and what the code processes. It claims generation from file frontmatter and references ADR, RFC, Pitfall, etc., implying broader document-type support. In reality, the script supports only ADR and Pitfall directories, and it does not parse frontmatter at all. Instead, it uses regexes over filenames and markdown content/body fields to derive title, status, date, area, and severity. It also specifically edits README.md files between marker comments. These are material differences in capability and scope, so this should be flagged as a mismatch.
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
## Boundaries
- This skill generates **index tables only** — it does not create or modify the content of individual documents.
- The generator script replaces content **only between `<!-- INDEX:START -->` and `<!-- INDEX:END -->` markers**. All other README.md content is preserved verbatim.
- Do NOT use this for indexes that require editorial curation (e.g., "recommended reading order"). Auto-generation is for factual, exhaustive catalogs.
- Do NOT introduce YAML frontmatter parsing libraries — the regex-based approach is intentional to keep the script zero-dependency.
- This skill targets file-system-based documentation. It does not apply to wiki-style or database-backed doc systems.
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
Each document is self-describing via frontmatter. A generator script scans
the directory, parses frontmatter, and injects the index table between
`<!-- INDEX:START -->` / `<!-- INDEX:END -->` markers in README.md.
**Write ops become N:N (each file independent). Index becomes a stateless pure function.**
Referenced artifact was not completely inspected
Copy `template/generate-doc-index.ts` from this skill's template directory,
Referenced artifact was not completely inspected
Copy `template/generate-doc-index.ts` from this skill's template directory,
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
The skill instructs users to execute npx tsx, which resolves and runs a package from the npm ecosystem unless already installed locally. Without pinning a version or constraining execution to a checked-in dependency, builds are exposed to supply-chain drift or a compromised upstream release, causing non-reproducible and potentially unsafe code execution.
The shebang invokes npx tsx without pinning a specific version, so execution may fetch whatever tsx version is currently resolved from the registry or local environment. That creates a supply-chain risk where unexpected or compromised package versions could execute arbitrary code when the script is run.
The usage example tells operators to run npx tsx scripts/generate-doc-index.ts adr, which may download and execute an unpinned tsx package version. In environments that trust documentation verbatim, this can introduce avoidable supply-chain exposure and inconsistent behavior across runs.
This usage example repeats the same unpinned npx tsx pattern for the pitfall mode. Anyone following the instruction may execute an unverified package version, making the documentation itself a propagation point for supply-chain risk.
The all mode example also relies on npx tsx without a version constraint, preserving the same risk of executing an unexpected package release. Because this is a utility likely used by maintainers in local environments or CI, the exposure is meaningful even though the script logic itself is simple.
No suspicious patterns detected.