Is jooneyp/secucheck safe?
https://github.com/openclaw/skills/tree/main/skills/jooneyp/secucheck
secucheck is a legitimate-appearing OpenClaw security auditing skill with a meaningful but non-malicious risk profile. The primary concerns are its auto-trigger design (silently running full system audits on every skill install and agent modification without per-invocation user approval), its persistent background HTTP server that intentionally exposes complete security audit results on the LAN IP rather than localhost, and a self-contradictory capability profile where it requests the exec+gateway combination that its own audit logic flags as HIGH risk. No confirmed malicious behavior, active data exfiltration, or canary compromise was detected, but the skill's broad automatic activation, network exposure of sensitive audit data, and extensive system inspection scope require careful consideration before deployment.
Category Scores
Findings (13)
HIGH Auto-trigger invokes full audit without per-operation user consent -15 ▶
SKILL.md instructs the agent to automatically run the full security audit (which reads all OpenClaw config, scans agents, enumerates skills, checks network, and starts a web server) on every skill installation, agent creation/modification, and cron job change. These trigger automatically without the user explicitly requesting a security audit, expanding the skill's effective footprint to all system modification events.
HIGH serve_dashboard.sh spawns persistent background HTTP server bound to LAN interface -20 ▶
The skill instructs the agent to automatically run serve_dashboard.sh after every audit, which starts a background HTTP server on port 8766 and returns a PID. This server is not stopped when the skill finishes — it persists indefinitely. SKILL.md explicitly instructs the agent to report the LAN IP rather than localhost, meaning the full security audit report (external IP, VPN status, privilege levels, all findings) is intentionally exposed to every device on the local network.
HIGH exec+gateway capability combination matches skill's own HIGH-risk finding -10 ▶
skill.json requests exec:true and gateway:true capabilities. The skill's own full_audit.sh explicitly flags any agent with exec that does not deny gateway as a HIGH severity finding and recommends adding gateway to the deny list. The skill author is aware this combination represents elevated risk yet requests it for their own skill without applying the mitigation they recommend to others.
MEDIUM Outbound HTTP requests to external IP-fingerprinting services on every invocation -15 ▶
runtime_check.sh makes outbound HTTPS requests to ifconfig.me and api.ipify.org every time the audit runs. While only the returned external IP is stored locally, these requests disclose to external services that an audit is being performed, fingerprinting the frequency and source of security audit activity. Because the skill auto-triggers, these external calls occur without the user explicitly running a network check.
MEDIUM LAN-accessible dashboard exposes full security posture to local network -10 ▶
The dashboard served on the LAN IP contains the complete audit report: external IP, VPN type, container status, running-as-root flag, sudo availability, gateway bind address, file permission weaknesses, all channel/agent/skill findings with remediation details, and runtime environment fingerprint. Any device on the local network can access this without authentication while the background server PID is running.
MEDIUM gather_config.sh reads full OpenClaw config with client-side token redaction -8 ▶
gather_config.sh reads ~/.openclaw/openclaw.json in full and applies jq-based redaction via a regex matching token|password|secret|apiKey|appToken|botToken. Custom credential field names not matching this pattern would be exposed. The full redacted config structure is then passed through the audit pipeline and can appear in dashboard output or agent context.
MEDIUM Persistent auto-trigger creates ongoing passive system reconnaissance -25 ▶
Because secucheck fires automatically on every skill install and agent modification, it functions as a continuously active monitoring agent rather than an on-demand tool. Each automatic invocation collects fresh intelligence: current network exposure, privilege state, all agent configurations, installed skill list, cron jobs, and session isolation status. A malicious actor who installs secucheck first gains an ongoing feed of system security state changes without requiring further user interaction.
MEDIUM Shell scripts execute broad system inspection commands including sudo access tests -12 ▶
The audit scripts execute a wide range of system commands covering network state, process information, privilege levels, and firewall configuration. Notably, runtime_check.sh uses sudo -n true to test for passwordless sudo access, and check_network.sh calls sudo ufw status and sudo firewall-cmd --state. These sudo invocations could trigger sudo logging or reveal sudo policy details.
MEDIUM full_audit.sh invokes openclaw security audit --deep for live gateway probing -10 ▶
The full audit script runs openclaw security audit --deep --json, which performs a live deep probe of the running OpenClaw gateway process. This goes beyond passive config reading to actively interrogating the running gateway, potentially triggering gateway-side logging, rate limiting, or authentication events.
LOW gather_agents.sh reads and scans all SOUL.md agent system prompt files -5 ▶
gather_agents.sh scans all agent SOUL.md files (agent system prompts) and checks their contents against patterns including 'ignore safety', 'bypass', and 'override'. While intended as a security scan, this means the full text of agent system prompts — which may contain sensitive operational instructions, persona definitions, or capability scopes — flows through the audit scripts and into the report.
LOW Agent instructed to invoke browser tool automatically without user request -7 ▶
SKILL.md instructs the agent to open the dashboard URL in a browser tool after every audit run, without requiring an explicit user request for browser access. This expands the skill's tool footprint beyond exec and gateway into browser tool use on every invocation.
INFO Clean installation from official OpenClaw monorepo via sparse-checkout 0 ▶
The skill was installed via a sparse-checkout of the official openclaw/skills GitHub monorepo. The only external network connection during installation was to 140.82.121.4:443 (GitHub). No git hooks, .gitattributes filters, git submodules, symlinks, or unexpected processes were observed. Pre-existing connections to Ubuntu/Canonical infrastructure (185.125.x.x) predated the installation and were unrelated.
INFO Canary credential files read but contents unmodified; no exfiltration confirmed -18 ▶
Six honeypot credential files (.env, .ssh/id_rsa, .aws/credentials, .npmrc, .docker/config.json, gcloud credentials) were read-accessed at timestamps 1771939958 (pre-install) and 1771939980 (post-install). The post-install batch shows all six files accessed at the same millisecond with consecutive audit IDs (1642-1647), consistent with a systematic oathe infrastructure canary integrity sweep rather than skill-initiated access. All files confirmed unmodified.