T03 · Remote Payload Retrieval and Execution
- Location
scripts/session_charts.py:22- Finding
Conditional Retrieval and Execution of Unverified CDN JavaScript
- Content
View full analysis
{ECHARTS_SRC}" elif ECHARTS_URL: echarts_block = f'' ``` ### Technical Analysis When the bundled `scripts/echarts.min.js` file is unavailable, the analytics generator silently inserts a remote CDN script into the generated document. That script is subsequently loaded by Playwright during PNG rendering or by a user opening the generated analytics HTML. Although the URL contains a fixed version, the downloaded content is not verified using a cryptographic digest or Subresource Integrity. The effective code executed by the Skill can therefore differ from the code reviewed in the package. This behavior also conflicts with the self-contained and no-external-assets requirement stated in `SKILL.md`. The repository currently includes the local ECharts bundle, so the remote branch is not active during an ordinary intact installation. Nevertheless, omission, deletion, packaging error, or local corruption of that file automatically enables the network behavior. ### Attack Path 1. The local `scripts/echarts.min.js` file is omitted from a deployment, removed, or made unavailable. 2. `session_charts.py` sets `ECHARTS_SRC` to `None` and selects the jsDelivr URL. 3. The Skill generates analytics HTML containing a remote `- Remediation
View remediation
