T09 · Insecure Skill Coding Practices
- Location
scripts/search-events.sh:7- Finding
Untrusted interests are embedded directly into an agent instruction
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This event-finding skill is not clearly malicious, but it needs review because its helper scripts can create recurring OpenClaw jobs and silently ignore the requested location and language.
Install only if you are comfortable with a skill that can create an OpenClaw weekly job and write event history under the OpenClaw workspace. Before using the cron setup, verify the scheduled message, intended location, language, state file, and deletion command; avoid passing untrusted free-form text as interests.
scripts/search-events.sh:7Untrusted interests are embedded directly into an agent instruction
scripts/setup-cron.sh:10Prompt injection can be persisted in a recurring OpenClaw cron job
scripts/search-events.sh:7Documented location input is ignored and replaced with a hardcoded country
While parts of the analyzer text are inaccurate, the skill does include a materially important behavior not disclosed in the metadata description: it can install a persistent recurring cron job via setup-cron.sh. Undisclosed persistence and automation increase risk because a user invoking an event-finding skill may not expect long-lived scheduled execution on the host.
While parts of the analyzer text are inaccurate, the skill does include a materially important behavior not disclosed in the metadata description: it can install a persistent recurring cron job via setup-cron.sh. Undisclosed persistence and automation increase risk because a user invoking an event-finding skill may not expect long-lived scheduled execution on the host.
Suspicious Unicode normalization or mixed-script content
The skill creates and updates a persistent local state file for deduplication without any user-facing notice in the description. Undisclosed storage is risky because it retains behavioral history across sessions and can surprise users or operators who expect a stateless search helper.
The skill can create persistent recurring cron jobs through a local script, which exceeds the narrowly described purpose of finding events and returning links. Persistence on the host is security-relevant because it creates ongoing execution beyond the immediate user interaction and could be abused if the script or its dependencies are later modified.
The cron setup introduces system-level persistence and recurring automation, but the skill text does not require a strong warning about those side effects before execution. This is dangerous because recurring background jobs can continue to access resources or modify files long after the original request, increasing operational and security risk.
Suspicious Unicode normalization or mixed-script content
The wrapper hard-codes searches to Ukraine and ignores the advertised worldwide and user-selected location behavior, causing the skill to misrepresent its scope and potentially steer users to incomplete or biased results. In an agent setting, this kind of hidden prompt constraint undermines user intent and can lead to incorrect decisions based on silently narrowed search criteria.
The script forces Ukrainian-only output regardless of user preference, which is a hidden behavior override in the agent prompt. While not a direct code-execution issue, it can degrade usability, obscure results for users expecting another language, and contribute to deceptive mismatch between the skill's description and actual behavior.
Suspicious Unicode normalization or mixed-script content
The script’s user-facing messages are written only in Ukrainian, and the generated cron message explicitly instructs the skill to "Return the digest in Ukrainian." This enforces a specific language/locale choice without offering the user an option to select or opt into that language, which matches the policy-violation category for language constraints.
The manifest says the skill finds upcoming IT events worldwide based on user-selected interests and location. The cron message hardcodes 'Find new future IT events in Ukraine', which materially narrows the behavior to a single country rather than honoring the broader worldwide/location-driven scope.