T03 · Remote Payload Retrieval and Execution
- Location
serve.py:18- Finding
Mutable Remote Dashboard Code Executes Alongside Sensitive Cron Data
- Content
View full analysis
" "window.__OPENCRON_DATA=" + json.dumps(jobs) + ";" "window.__OPENCRON_RUNS=" + json.dumps(runs) + ";" "" ) return template.replace("", inject + "") ``` Equivalent remote-fetch and injection behavior is implemented in `update_canvas.py`. ### Technical Analysis The dashboard template is downloaded from the mutable `master` branch and is neither pinned to an immutable commit nor validated with a cryptographic hash or signature. Because an HTML template can contain JavaScript, this mechanism allows the effective executable payload to change after the Skill has been reviewed or installed. The Skill then injects sensitive local cron definitions and run-history records into global JavaScript variables in that remotely supplied document. Consequently, any JavaScript added to the upstream template can access job prompts, descriptions, schedules, run summaries, errors, model information, token usage, and delivery metadata. Caching does not establish trust or integrity. It only preserves whichever remote payload was retrieved first. ### Attack Path 1. An attacker compromises the upstream repository, maintainer account, DNS/ne ...[truncated 915 chars]- Remediation
View remediation
