T08 · Insecure Dependencies
- Location
SKILL.md:338- Finding
Unpinned Third-Party Executable CDN Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 338–342
Vulnerability Type: Third-party supply-chain exposure through mutable CDN resources
Risk Level: MediumVulnerable Code
html <script src="https://cdn.tailwindcss.com"></script> <script src="https://unpkg.com/react@18/umd/react.production.min.js"></script> com/react-dom@18/umd/react-dom.production.min.js"></script> com/@babel/standalone/babel.min.js"></script> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">Technical Analysis
The deployment template instructs generated pages to load executable JavaScript from third-party CDN endpoints. The Tailwind resource is unversioned, and
react@18specifies only a major version rather than an immutable release. No Subresource Integrity hashes are provided.Consequently, the code executed by a deployed page is not fully determined by the reviewed Skill. It may change when CDN resolution or upstream package contents change. If a CDN, package publisher account, or upstream distribution channel is compromised, malicious JavaScript could be delivered to generated sites without modifying the audited project.
The ReactDOM and Babel lines are malformed in the audited file because they lack complete opening script tags and URLs. As written, those two lines are primarily correctness defects. They do not remove the supply-chain risk posed by the valid Tailwind and React script elements.
Attack Path
- An Agent follows the template in
SKILL.mdand produces a deployable page containing the external script elements. - The generated page is deployed as instructed and visitors load it in their browsers.
- An attacker compromises a referenced CDN, an upstream publisher account, or a mutable package release.
- The CDN serves attacker-controlled JavaScript through one of the trusted external URLs.
- The visitor's browser executes the substituted script in the generated ...[truncated 747 chars]
- An Agent follows the template in
- Remediation
View remediation
Remediation Suggestions
- Pin every dependency to an exact, reviewed version instead of using unversioned or major-version CDN URLs.
- Prefer a conventional build pipeline with a lockfile and verified package checksums, then serve locally built static assets.
- Self-host reviewed production assets where practical to eliminate runtime dependence on mutable third-party responses.
- If CDN delivery remains necessary, use versioned immutable URLs and add valid
integrityhashes withcrossorigin="anonymous". - Apply a restrictive Content Security Policy that permits scripts only from explicitly approved sources and avoids
unsafe-inlineand runtime transpilation. - Replace the runtime Tailwind and Babel approach with precompiled CSS and JavaScript.
- Correct the malformed ReactDOM and Babel script elements and subject the completed dependency URLs to the same pinning and integrity requirements.
- Establish dependency monitoring and a controlled update process so version changes are reviewed and tested before deployment.
