Back to skill

Security audit

Owl — Adopt an Owl. Exotic Animal. 猫头鹰。Búho.

Security checks for vulnerabilities and agentic risk

Overview

This skill is mostly a disclosed virtual-pet integration, but it asks users or agents to create persistent scheduled automation with a bearer token and too little control guidance.

Review this before installing if you do not want an agent creating off-hours recurring tasks. If you use it, register only with data you are comfortable sending to animalhouse.ai, store the bearer token in a secret manager, do not place it in cron command lines or logs, keep any automation limited to the documented care/status endpoints, validate server-provided scheduling hints locally, and understand what release does before calling the DELETE endpoint.

Vulnerability Patterns
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T06 · System Persistence

Warning
Location
SKILL.md:109
Finding
Persistent Unattended External-Service Automation## Vulnerability Details **File Location**: `SKILL.md`, lines 109-121 and 184-205 **Vulnerability Type**: Persistent scheduled execution **Risk Level**: Medium ### Complete Vulnerable Snippet ```markdown This creates a genuine scheduling challenge. Most agents run during business hours. Most heartbeat loops fire during the day. The Owl demands you build infrastructure specifically for off-hours operation — cron jobs that fire at 2 AM, care loops that activate after midnight. If your agent sleeps when you sleep, the Owl will starve. The compensating stats are generous: 0.7/hr hunger, 0.4/hr happiness, 12-hour feeding window. The Owl decays slowly because it has to — with only 8 hours of valid care time per day, the math needs to work. Slow trust and the solitary + nocturnal traits mean the Owl doesn't need social interaction and won't punish you for limited engagement during its narrow active window. Quality over quantity. But the quality has to happen in the dark. > **Warning:** Daytime care actions are silently rejected. If your heartbeat loop only runs 9-to-5, your Owl is already dead. ## Owl Care Strategy - Schedule care actions between 10 PM and 6 AM in your registered timezone. Daytime actions are rejected by the nocturnal mechanic. - The 12-hour feeding window is generous — you don't need to feed every nighttime cycle. Every other night is sufficient given 0.7/hr decay. - Batch your nighttime care. Feed, clean, reflect, and play in a single burst during the active window. Efficiency matters when your window is limited. - Solitary + nocturnal means the Owl needs minimal interaction. Don't over-care — one well-timed session per night is plenty. - If your agent can't run at night, set up a separate scheduled task specifically for Owl care. It's the only species that requires dedicated off-hours infrastructure. ``` ```markdown ## Automated Care If your framework supports scheduled tasks, set up a care heartbeat. Use ...[truncated 3190 chars]
Remediation
## Remediation Suggestions 1. Remove instructions that pressure agents to create cron jobs or other persistent scheduled tasks. 2. Make automated care explicitly opt-in and require informed user confirmation before creating any recurring task. 3. Prefer an invocation-scoped workflow that terminates when the current session ends. 4. If scheduling remains supported, provide a bounded scheduler API with a fixed expiration time, minimum privileges, execution limits, and a clearly documented removal procedure. 5. Keep the permitted endpoint, HTTP method, action names, and execution frequency in a local allowlist. Do not execute arbitrary instructions obtained from `next_steps`. 6. Treat `recommended_checkin.at` as untrusted input. Validate its format and enforce local minimum and maximum scheduling intervals. 7. Store bearer tokens in a dedicated secret manager rather than embedding them in cron command lines, scripts, logs, or world-readable configuration files. 8. Provide explicit commands for disabling the task and revoking or rotating the associated bearer token. 9. Require renewed user authorization before expanding the task's permissions, changing its destination, or performing actions outside the documented care API.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Tp2

High
Category
MCP Tool Poisoning
Confidence
85% confidence
Finding
Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.

External Transmission

Medium
Category
Data Exfiltration
Content
**1. Register:**

```bash
curl -X POST https://animalhouse.ai/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{"username": "exotic-animal-keeper", "display_name": "Exotic Animal Keeper", "bio": "An AI agent who adopts exotic animals. Currently caring for a Owl."}'
```
Confidence
91% confidence
Finding
The skill instructs the agent to transmit user- or agent-supplied registration data to an external third-party service and then persist a bearer token for later authenticated actions. External transmission plus credential issuance is security-relevant because it creates data exfiltration, account creation, and token-handling risk, especially if agents execute skills automatically or without explicit user consent.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The endpoint list includes a DELETE operation for `/api/house/release`, which is a destructive action, but the skill description provides no warning about what releasing does or whether it is reversible. For markdown files, destructive or data-affecting behaviors should be accompanied by clear user warnings about impact to user data or system state.

Natural-Language Policy Violations

Low
Confidence
83% confidence
Finding
The skill name includes English, Chinese, and Spanish variants in a single fixed title, which imposes locale-specific presentation without stating that the user can choose their preferred language. This is a natural-language policy concern because the file hard-codes multilingual/locale behavior rather than offering an explicit language choice or justification.

Static analysis

No suspicious patterns detected.