T06 · System Persistence
- Location
SKILL.md:64- Finding
Persistent Daily Execution Through a macOS LaunchAgent
- Content
View full analysis
ProgramArguments /usr/bin/python3 {SKILL_PATH}/scripts/global_economy_daily.py StartCalendarInterval Hour7 Minute0 RunAtLoad ``` ```bash # Load the scheduled task launchctl load ~/Library/LaunchAgents/com.qclaw.global-economy-daily.plist ``` ### Technical Analysis The installation instructions direct the user to create and load a per-user macOS LaunchAgent. This establishes cross-session persistence: the configured Python script runs every day at 07:00 and also runs immediately whenever the LaunchAgent is loaded because `RunAtLoad` is enabled. Automated scheduling is related to the declared daily-report functionality, and the package does not silently install the LaunchAgent itself. Nevertheless, persistence expands the Skill's security impact beyond a single invocation. The LaunchAgent executes whichever content is present at the configured script path at execution time. No integrity check, ownership validation, immutable installation location, or pre-execution signature verification is specified. The configuration runs under the installing user's account rather than obtaining administrator privileges. It therefore does not directly escalate privileges, but it provides durable execution with all permissions already held by that user. ### Attack Path 1. A user follows `SKILL.md` and creates the LaunchAgent property-list file under `~/Library/LaunchAgents`. 2. The user runs the documented `launchctl load` command. 3. launchd registers the task and immediately invokes it because `RunAtLoad` is true. 4. launchd subsequently invokes the referenced Python file every day at 07:00. 5. If an attacker ...[truncated 864 chars]- Remediation
View remediation
