T08 · Insecure Dependencies
- Location
SKILL.md:154- Finding
Unpinned Remote JavaScript Dependency in Generated HTML Reports
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 154
Vulnerability Type: Unpinned third-party JavaScript loaded from a CDN
Risk Level: MediumRelevant instruction, translated into English from the source:
text Reports use pure HTML, CSS, and Chart.js from a CDN and can be opened directly as a single file.Technical Analysis
The Skill instructs the Agent to generate HTML reports that load Chart.js from a CDN, but it does not require an official source, an exact dependency version, a cryptographic integrity hash, or local vendoring. Consequently, the executable JavaScript retrieved when a report is opened may differ from the component that was understood or reviewed when the Skill package was audited.
This creates a supply-chain trust boundary outside the audited project. A compromised CDN, mutable dependency URL, malicious package release, DNS or hosting compromise, or model-selected unofficial source could cause attacker-controlled JavaScript to execute in the generated report.
The project does not itself contain a remote script URL or code that automatically downloads and executes Chart.js. Exploitation therefore depends on the Agent following this report-generation instruction and producing a report with an unsafe remote script reference.
Attack Path
- A user requests a comprehensive or interactive HTML report.
- The Agent follows
SKILL.mdand generates an HTML document containing a CDN-hosted Chart.js script. - The selected URL is unversioned, mutable, compromised, or points to an untrusted CDN.
- The user opens the generated report in a browser.
- The browser downloads and executes the remote JavaScript.
- The malicious dependency reads or modifies report content and performs actions available to JavaScript within the report's browser context.
Impact Assessment
Successful exploitation grants code execution in the generated report's browser page context. The ...[truncated 636 chars]
- Remediation
View remediation
Remediation Suggestions
- Vendor a reviewed Chart.js release inside the Skill package and reference the local file from generated reports.
- If a CDN is necessary, require an official HTTPS endpoint pinned to an exact immutable version.
- Require Subresource Integrity and anonymous cross-origin validation:
html <script src="https://trusted.example/chart.js/exact-version/chart.min.js" integrity="sha384-REVIEWED_HASH" crossorigin="anonymous"></script> - Do not allow the Agent to select arbitrary package names, versions, or CDN domains.
- Add a restrictive Content Security Policy that permits scripts only from explicitly approved locations and blocks unnecessary network destinations.
- Prefer fully self-contained reports with no runtime network dependency, especially when reports may contain proprietary process or device information.
- Document an update process requiring dependency review and integrity-hash regeneration before changing the vendored or pinned version.
