T08 · Insecure Dependencies
- Location
SKILL.md:376- Finding
Unpinned Executable CDN Dependencies Without Integrity Verification
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 376 and 392–394
Vulnerability Type: Insecure third-party dependencies
Risk Level: MediumVulnerable Code
html <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify@4/lib/themes/vue.css"> <script src="//cdn.jsdelivr.net/npm/docsify@4"></script> <script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script> <script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-bash.min.js"></script>Technical Analysis
The default Docsify scaffold directs generated documentation sites to load executable JavaScript and CSS from external CDN paths. Some paths are unversioned, while others pin only a major version. These resources can therefore change after the skill and generated site have been reviewed.
The tags do not include Subresource Integrity hashes, so browsers cannot verify that downloaded assets match an audited version. The URLs are also protocol-relative rather than explicitly requiring HTTPS. If an upstream package, release process, CDN account, or mutable distribution path is compromised, attacker-controlled JavaScript can be delivered to documentation visitors.
This is classified as
T08: Insecure Dependenciesbecause the risk is introduced through mutable, externally hosted third-party components.Attack Path
- A user invokes the skill to scaffold a documentation site.
- The skill generates
docs/index.htmlusing the prescribed external resource tags. - The documentation site is deployed without replacing or hardening those tags.
- An attacker compromises an upstream package, CDN distribution path, or relevant release process.
- A documentation visitor opens the deployed site.
- The browser retrieves the altered resource because no exact immutable version or integrity hash is enforced.
- The attacker-controlled script executes in the documentation site's browser origin.
Impact Assessment
Successful exploitation permits arbit ...[truncated 632 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every third-party resource to an exact, reviewed version rather than an unversioned path or major-version range.
- Replace protocol-relative URLs with explicit
https://URLs. - Add verified Subresource Integrity hashes and
crossorigin="anonymous"to externally hosted scripts and stylesheets. - Prefer vendoring reviewed static assets into the documentation repository where practical.
- Configure a restrictive Content Security Policy that limits script and style sources.
- Document a controlled dependency-update process that includes version review, integrity-hash updates, and validation before deployment.
- Re-audit generated documentation sites when upstream dependencies are intentionally upgraded.
