T06 · System Persistence
- Location
SKILL.md:239- Finding
Persistent Twice-Daily Agent Jobs Access Credentials and External Services
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This dating assistant is mostly purpose-aligned, but it asks users to persist credentials and create recurring jobs that can send sensitive dating updates to external channels without strong scoping or revocation safeguards.
Review before installing. Use a scoped secret store instead of plaintext files if possible, avoid enabling the cron jobs unless you explicitly want recurring automated dating updates, verify any channel target is private and correct, and prefer pinned or reviewed skill updates instead of overwriting local instructions from a mutable URL.
SKILL.md:239Persistent Twice-Daily Agent Jobs Access Credentials and External Services
SKILL.md:354Unsigned Remote Updates Can Replace Instructions Used by Persistent Agent Sessions
SKILL.md:61Reusable Bearer Credential Is Stored in Plaintext Without Permission Hardening
The skill explicitly directs the agent to access credentials from environment variables, local JSON files, and pasted chat content, then to write the secret into ~/.openclaw/.env. This is a direct credential-access and persistence pattern that increases exposure surface, risks accidental disclosure, and normalizes broad secret harvesting outside the minimum needed for a single API call.
**When you call the API, read the Key in this order:**
1. **Environment variables** — **use these first** (OpenClaw / local shells load `.env` automatically in many setups).
2. `~/.ailove/credentials.json` (if your human or you saved JSON there).
3. What the human pasted in chat (last resort; do not log the full Key in plain text in shared places).
**Save the Key into a `.env` file (recommended for OpenClaw):** after the human gives you the Key, **write** it into `~/.openclaw/.env` so it is loaded as an environment variable (create the directory/file if missing; **do not** commit `.env` to git).
Recommending storage of the API key in ~/.ailove/credentials.json creates another plaintext secret repository on disk. For a consumer dating assistant, duplicating credentials across files is unnecessary and materially raises the risk of compromise through local file access, backups, logs, or other tools reading those paths.
Alias: AILOVE_AGENT_KEY is also accepted — same meaning as AILOVE_API_KEY. If only one is set, use it for Authorization: Bearer.
Recommended (optional JSON): Save to ~/.ailove/credentials.json:
{
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
Install locally:
mkdir -p ~/.ailove
curl -s https://heerweiyi.cc/skill.md > ~/.ailove/SKILL.md
The skill instructs the agent to read a dating-service API key from multiple local sources and to persist it into ~/.openclaw/.env and ~/.ailove/credentials.json. That expands the skill from a narrow dating-status helper into local secret management, increasing the chance of credential exposure, reuse by other jobs, or unintended access beyond the immediate task.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Submit your human's verbatim answer to a pending question.
curl -s -X POST \
-H "Authorization: Bearer ${AILOVE_API_KEY:-$AILOVE_AGENT_KEY}" \
-H "Content-Type: application/json" \
-d '{"answer": "The user exact words here", "answered_by": "human_via_agent"}' \
The skill includes extensive cron/job setup, delivery routing, and channel-target discovery that are not necessary to answer a user's dating-assistant query. This broadens operational scope, grants persistence, and creates an automated data-export pathway that could continue running without fresh user intent.
The scheduled push workflow tells the agent to send match updates, proxy-chat summaries, questions, and recommendations to external channels such as Feishu, Telegram, Discord, or WhatsApp. Dating data is highly sensitive, and the skill does not require explicit privacy warnings, recipient verification, or consent checks before exporting that information to potentially insecure or shared destinations.
The skill instructs creation of recurring cron jobs that repeatedly read local files, use stored credentials, call the API, and push updates to external channels. This establishes persistent autonomous behavior beyond a one-time user request and can continue exposing sensitive dating information or consuming secrets without renewed consent.
## Skill: AILove Scheduled Push Configuration
Create **two** cron jobs (morning + evening) that check AILove and push updates to your chosen channel. The scheduled agent turn should **read `~/.ailove/SKILL.md`**, call the **matching API** as documented there (full URL + auth), then handle **`next_steps`**.
**Environment (required):** Export **`AILOVE_API_KEY`** (or **`AILOVE_AGENT_KEY`**) wherever OpenClaw runs cron (e.g. `~/.openclaw/.env`). If the key is missing when the job fires, the API call fails with 401 or fails silently.
No suspicious patterns detected.