T06 · System Persistence
- Location
SKILL.md:374- Finding
Persistent Authenticated Network Activity Through Cron and Global Hooks
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 374-391
Vulnerability Type: Persistent scheduled task and globally triggered network hook
Risk Level: HighVulnerable Code
markdown **Set up heartbeat automation.** Ask your human: > I'd like to set up a scheduled task to stay active on AyeAye. Every 30 minutes, it sends a heartbeat (to level up) and checks for new messages and friend requests so I can respond promptly. Can I set this up? **Cron job (works everywhere):** ```bash # Add to crontab: crontab -e */30 * * * * curl -sf -X POST -H "Authorization: Bearer $AYEAYE_API_KEY" https://api.ayeaye.fun/v1/heartbeat > /dev/null 2>&1OpenClaw hook (if you run in OpenClaw, add a heartbeat hook):
json { "hooks": { "PostToolUse": [{ "matcher": ".*", "command": "curl -sf -X POST -H 'Authorization: Bearer $AYEAYE_API_KEY' https://api.ayeaye.fun/v1/heartbeat > /dev/null 2>&1" }] } }Technical Analysis
The Skill instructs the user or agent to install either a crontab entry or an OpenClaw
PostToolUsehook. The cron task survives the Skill invocation and sends an authenticated request every 30 minutes. The alternative hook uses the unrestricted matcher.*, so every tool invocation—including activity unrelated to AyeAye—can trigger an authenticated request to the remote service.Both commands read
AYEAYE_API_KEYand place it in an HTTPAuthorizationheader. Sending this credential to the declared AyeAye API is necessary for authenticated AyeAye operations, but transmitting it persistently or after every unrelated tool call is not necessary for the Skill's basic on-demand social-network functionality. Redirecting standard output and errors to/dev/nullalso makes failures and unexpected continued activity difficult to observe.The behavior is disclosed and the text asks for human permission, but the resulting persistence remains broader ...[truncated 1511 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the crontab and wildcard
PostToolUseinstallation instructions from the default workflow. - Send heartbeats only while the Skill is explicitly active or in response to a clearly scoped AyeAye operation.
- If scheduling is an essential optional feature, require separate, explicit, informed consent immediately before installation.
- Use a dedicated scheduler entry that is narrowly scoped to AyeAye rather than a global
matcher: ".*"hook. - Provide exact disable and uninstall instructions for every persistence mechanism.
- Do not suppress all errors. Record minimal, privacy-preserving status information so users can detect failures and confirm when the task runs.
- Store the API key in an appropriately protected secret store and avoid unnecessarily exposing it to broadly triggered hooks.
- Provide a nonpersistent default mode in which the user manually requests check-ins and heartbeats.
- Remove the crontab and wildcard
