T06 · System Persistence
- Location
SKILL.md:120- Finding
Persistent Execution Through a Windows Scheduled Task
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:120-126
Vulnerability Type:T06: System Persistence
Risk Level: HighComplete Code Snippet:
markdown ### Setting a Scheduled Task To ensure the skill runs at 8:00 AM every day, you can set up a scheduled task: ```bash schtasks /create /tn "DailyNewsBrief" /tr "node C:\Users\User\.skill-platform\workspace\skills\daily-news-brief\news-brief.js" /sc daily /st 08:00text ### Technical Analysis The documented command registers an operating-system scheduled task that survives the current Skill invocation and executes every day. Daily scheduling is related to the advertised automation, but OS-level persistence is a security-sensitive mechanism and is not implemented with adequate safeguards. The scheduled task points to `news-brief.js`, but that file is absent from the audited package. The project contains only `SKILL.md`. Consequently, the executable content that the task would run could not be audited or integrity-checked. If a file is later created or replaced at the referenced path, the scheduled task will execute that content under the security context of the account that registered the task. The instructions do not: - Require informed confirmation immediately before persistence is installed. - Verify the target script's existence, ownership, or cryptographic integrity. - Restrict filesystem write access to the script and its parent directories. - Explain the privileges under which the task will run. - Provide inspection, disablement, or removal instructions. - Use a fully qualified and verified path for the Node.js executable. ### Attack Path 1. A user follows the Skill documentation and executes the `schtasks /create` command. 2. Windows registers `DailyNewsBrief` as a persistent daily task. 3. The referenced `news-brief.js` is absent from the reviewed package, or is later modified after installation. 4. An attacker or comprom ...[truncated 984 chars]- Remediation
View remediation
Remediation Suggestions
-
Do not create a scheduled task automatically. Require a separate, explicit opt-in action after clearly explaining the persistence and execution context.
-
Include the actual
news-brief.jsimplementation in the package so it can be reviewed before any scheduling instructions are offered. -
Verify the target file's existence, expected ownership, restrictive permissions, and cryptographic digest before task creation.
-
Use absolute, properly quoted paths for both
node.exeand the script to prevent path-resolution ambiguity. -
Install the Skill in a directory writable only by the intended owner and trusted administrators.
-
Run the task with the least-privileged dedicated account needed for news retrieval and delivery. Do not request elevated privileges.
-
Prefer a scheduler managed by the host Skill platform rather than creating OS-level persistence.
-
Provide lifecycle commands, including inspection and removal:
bat schtasks /query /tn "DailyNewsBrief" schtasks /delete /tn "DailyNewsBrief" /f -
Log task creation and each execution, and notify the user when scheduling is enabled, changed, or disabled.
-
