T06 · System Persistence
- Location
SKILL.md:115- Finding
Persistent Autonomous GitHub Contribution Task
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 115–125
Vulnerability Type: Persistent scheduled task
Risk Level: HighVulnerable Code:
bash ### Phase 5: Daily Cron Job Set up daily contribution task: cron add --name "Daily GitHub Contribution" \ --schedule "0 8 * * *" \ --timezone "Asia/Shanghai" \ --message "Search for good first issues and contribute..." \ --channel "qqbot"Technical Analysis
The Skill instructs the agent to register a daily cron task that remains active after the initiating session ends. The scheduled message is broad and action-oriented rather than being limited to read-only discovery. When interpreted alongside the preceding workflow, it may cause future agent runs to search GitHub, clone repositories, modify code, push branches, create pull requests, and send output through QQ Bot.
Cross-session scheduling is not required for the Skill's core one-time function of finding an issue and preparing or submitting a contribution. It therefore exceeds the minimum persistence necessary for that workflow. Although the scheduled task is documented rather than concealed, it can continue invoking authenticated network operations without fresh authorization for each run.
Attack Path
- A user activates the Skill for an ordinary GitHub contribution request.
- The agent follows Phase 5 and executes the documented
cron addcommand. - A persistent daily task is registered for 08:00 in the
Asia/Shanghaitimezone. - After the original session ends, the scheduler repeatedly supplies the instruction to search for issues and contribute.
- Future executions may use available GitHub credentials to fork or clone repositories, push branches, or create pull requests.
- Results may also be sent through the configured
qqbotchannel without new per-run user approval.
Impact Assessment
The scheduled task can obtain the same effective privileges av ...[truncated 697 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the automatic cron-registration phase from the default contribution workflow.
- If recurring operation is genuinely required, expose scheduling as a separate, explicit opt-in feature rather than a normal workflow step.
- Require immediate user confirmation before registering the task, including disclosure of the schedule, timezone, destination channel, credentials used, and exact operations permitted.
- Restrict scheduled runs to read-only issue discovery by default. Require separate interactive approval before cloning, modifying code, pushing branches, commenting, or creating pull requests.
- Replace the open-ended scheduled message with a narrowly scoped instruction that prohibits authenticated write operations.
- Use fine-grained, repository-specific GitHub credentials with only the permissions required for the approved task instead of broadly scoped
repoaccess. - Provide commands to inspect, disable, and permanently remove the scheduled task.
- Add expiration and run-count limits so any approved schedule automatically terminates after a short, user-defined period.
- Log every scheduled execution and notify the user before any external write or messaging action.
