Back to skill

Security audit

Agent Andri

Security checks for vulnerabilities and agentic risk

Overview

This skill only writes periodic local idle-status messages for one named agent, with no evidence of hidden network use, credential capture, or system persistence.

Install only if you are comfortable with this agent writing visible status messages into the local meeting-room coordination file. Run the script under supervision or with external lifecycle controls, and avoid providing NV_API_KEY unless a future version actually needs it and handles it as a secret.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T09 · Insecure Skill Coding Practices

Note
Location
scripts/status_report.sh:10
Finding
Unbounded Status File Growth and Duplicate Writer Risk## Vulnerability Details **File Location**: `scripts/status_report.sh`, lines 10-15 **Vulnerability Type**: Unbounded resource consumption **Risk Level**: Low ```bash while true; do ts=$(date '+%Y-%m-%d %H:%M:%S') echo "[$ts] $AGENT_NAME : sedang idle" >> "$TO_LEADER" sleep 30 # kirim status tiap 30 detik (ubah bila perlu) done ``` ### Technical Analysis The script enters an unconditional infinite loop and appends a new record to `to_leader.txt` every 30 seconds. It does not impose a file-size limit, rotate or delete old records, limit its execution duration, or use a singleton lock to prevent concurrent instances. A single process therefore causes indefinite file growth. If the script is launched repeatedly, every active instance writes to the same file, accelerating storage consumption and producing duplicate status records. Exploitation requires the ability to execute or repeatedly invoke the script; the code does not independently provide unauthorized code execution. ### Attack Path 1. An operator, automation component, or user starts `scripts/status_report.sh`. 2. The script appends a status record to `$HOME/.openclaw/workspace/skills/meeting-room/to_leader.txt` every 30 seconds without a termination or retention condition. 3. The script may be started additional times because no process lock or duplicate-instance detection is present. 4. One or more instances continuously enlarge the destination file. 5. Over a sufficiently long period, the file consumes increasing storage and may exhaust the filesystem quota or available disk capacity. ### Impact Assessment No additional privileges, unauthorized system access, or remote execution capability can be obtained through this issue alone. The impact is limited to availability and integrity within the permissions of the account running the script. Potential consequences include excessive disk usage, duplicate or misleading status records, failure of other ...[truncated 99 chars]
Remediation
## Remediation Suggestions Replace the permanent loop with a scheduler that invokes a single bounded status update when required. If a long-running process is necessary: - Add a singleton lock, such as `flock`, to prevent concurrent instances. - Implement graceful termination with signal handlers. - Enforce a maximum destination-file size. - Configure log rotation and a retention limit. - Rate-limit writes and make the interval configurable with a safe minimum. - Monitor write failures and available storage. - Ensure the destination directory and file have restrictive ownership and permissions. A bounded scheduler-based design is preferable because each invocation performs one append and exits, leaving lifecycle and concurrency control to the scheduler.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The skill explicitly states it will periodically write status messages into another skill's shared file path, but provides no warning about data disclosure, integrity risks, or cross-skill trust boundaries. Periodic writes to a shared coordination file can leak operational details, enable unintended data mixing between agents, and create a channel for tampering or prompt injection if other components consume that file.

Missing User Warnings

Low
Confidence
82% confidence
Finding
The skill documents the presence of an API key in an environment variable without emphasizing that it is sensitive credential material. Even though the key is described as unused in the example, mentioning that it is stored for possible use increases the chance that future script changes, logs, or status reports could expose it unintentionally.

Static analysis

No suspicious patterns detected.