Gateway Guardian

WarnAudited by ClawScan on May 18, 2026.

Overview

The skill’s gateway-protection purpose is coherent, but it installs persistent services and contains unsafe shell-config handling plus unpinned remote script downloads that warrant careful review.

Review the installer before running it. Prefer a version that uses packaged or pinned scripts, safely stores guardian.conf without shell sourcing, and sends alerts only to a clearly configured owner or approved team channel.

Findings (6)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

A malicious or malformed notification name or config value could run shell commands when the service starts or sends notifications.

Why it was flagged

The runtime executes guardian.conf as shell. SKILL.md generates that file from conversation-derived values such as BOT_NAME without showing shell escaping, so crafted values could execute commands under the user account.

Skill content
[ -f "$_GUARDIAN_LIB_DIR/guardian.conf" ] && source "$_GUARDIAN_LIB_DIR/guardian.conf"
Recommendation

Do not source user-generated config directly. Store config as JSON or parse key/value lines safely, quote here-doc delimiters, validate allowed characters, and shell-escape any value written to a shell file.

What this means

The code actually installed and run persistently may change after review, making it harder for users to know what they are trusting.

Why it was flagged

The installer can fetch executable scripts from an unpinned GitHub main branch, which may differ from the reviewed artifact version.

Skill content
BASE_URL="https://raw.githubusercontent.com/Dios-Man/gateway-guardian/main" ... curl -fsSL "$BASE_URL/$f" -o "$SKILL_DIR/$f"
Recommendation

Install the packaged reviewed files when available, or pin downloads to a specific commit and verify checksums before chmod/systemd registration.

What this means

Gateway alerts and log excerpts could be sent to an unintended recent user or chat in a multi-user setup.

Why it was flagged

Notifications are sent to the most recently active direct session, or another active session, rather than being strictly pinned to the installer or configured owner.

Skill content
direct = [s for s in real if ':direct:' in s['key']] ... target.sort(key=lambda x: x.get('updatedAt', 0), reverse=True) ... print(target[0]['key'])
Recommendation

Pin notifications to the installer/fallback target by default, require explicit opt-in for team channels, and avoid sending journal/log excerpts to dynamically selected sessions.

What this means

After installation, the guardian continues operating in the background until stopped or uninstalled.

Why it was flagged

The skill intentionally installs a persistent systemd user service that restarts automatically.

Skill content
ExecStart=/bin/bash $SKILL_DIR/config-watcher.sh
Restart=always
RestartSec=3
Recommendation

Install only if you want continuous background monitoring, and verify the documented uninstall steps stop and disable the systemd units.

What this means

The skill can change gateway availability and may interrupt active conversations while recovering the service.

Why it was flagged

The recovery script has authority to reset and restart the OpenClaw gateway as part of crash recovery.

Skill content
systemctl --user reset-failed openclaw-gateway.service 2>/dev/null
systemctl --user restart openclaw-gateway.service
Recommendation

Confirm this automatic restart behavior is desired for the host, and keep reliable backups before enabling auto-rollback/recovery.

What this means

Gateway incident records may persist in agent memory beyond the immediate recovery task.

Why it was flagged

The skill writes incident summaries into OpenClaw workspace memory for later reuse.

Skill content
MEMORY_DIR="$HOME/.openclaw/workspace/memory" ... echo "## ${_MSG_MEMORY_HEADER} ($(date '+%H:%M'))" >> "$file"
Recommendation

Document retention clearly, avoid storing sensitive log contents in memory, and provide a simple cleanup option.