Back to skill

Security audit

Community Skill

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it claims: it monitors an OpenClaw gateway, restarts it on failure, and writes status files for monitoring, with some operational privacy cautions.

Install only on a server where you intentionally want automatic gateway restarts. Review the configured service name and file paths before enabling it, add or create the missing systemd unit file carefully, and protect any nginx status endpoints with authentication, IP allowlisting, or private-network access.

Vulnerability Patterns
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

Lp3

Medium
Category
MCP Least Privilege
Confidence
82% confidence
Finding
The skill documentation instructs operators to deploy Python and systemd-based automation that performs health checks, restarts services, and writes files, which implies shell and environment interaction despite no declared permissions. This mismatch is dangerous because it can bypass user expectations and review controls, leading to over-privileged deployment or unnoticed execution of operational actions on a host.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The documentation recommends exposing watchdog state and alert JSON via nginx for remote monitoring, but it does not warn that these endpoints disclose operational metadata such as service health, failure state, timestamps, and local gateway details. An attacker or unauthenticated observer could use this information for reconnaissance, outage confirmation, or targeted timing of attacks against an already degraded service.

Session Persistence

Medium
Category
Rogue Agent
Content
def save_state(state: dict) -> None:
    """Persist state to disk so it survives service restarts."""
    try:
        state_path = Path(cfg["STATE_FILE"])
        state_path.parent.mkdir(parents=True, exist_ok=True)
Confidence
75% confidence
Finding
The watchdog persists operational state and alert data to disk with world-readable permissions (0644), which can expose service health, failure timing, internal endpoint details, and recovery behavior to local users. In a multi-user or shared environment, this information can aid reconnaissance or leak operational metadata that should be limited to administrators.

Static analysis

No suspicious patterns detected.