T06 · System Persistence
- Location
SKILL.md:29- Finding
Persistent Scheduled Agent Execution Through OpenClaw Cron
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill does what it claims, but its optional setup creates a persistent daily agent task that sends content through Telegram without enough scoping or removal guidance.
Install only if you are comfortable with a daily recurring OpenClaw task sending weather output through Telegram. If you use the automatic setup, keep the script and virtual environment in a private durable location, pin dependencies, and make sure you know how to list and remove the cron entry.
SKILL.md:29Persistent Scheduled Agent Execution Through OpenClaw Cron
SKILL.md:13Unpinned Third-Party Dependency Installation
The skill invokes a script that fetches data from Open-Meteo, so it has network capability, but the manifest does not declare any explicit tool scope or permissions. That creates a transparency and governance gap: an agent or reviewer cannot easily tell from the skill metadata that outbound network access is required, which can lead to overbroad execution in environments that rely on manifest-declared capabilities.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import matplotlib.pyplot as plt # type: ignore
API_URL = (
"https://api.open-meteo.com/v1/forecast?latitude=48.5216&longitude=9.0576"
"&daily=temperature_2m_max,temperature_2m_min,precipitation_probability_max"
"&timezone=Europe/Berlin"
)
The documentation instructs automatic Telegram sending of the generated summary and PNG without an explicit warning that content will be transmitted to an external service. Even if the payload is only weather data, silent or poorly disclosed outbound transmission reduces user awareness and can normalize exfiltration patterns in agent skills.
The file contains multiple hard-coded German user-facing strings, including the module description, chart labels, CLI description, and printed summary. This enforces a specific language/locale without user opt-in, which matches the natural-language policy violation category for locale constraints.
No suspicious patterns detected.