Back to plugin
Pluginv2.3.0
ClawScan security
Openclaw Zalo Mod · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
SuspiciousApr 28, 2026, 11:36 PM
- Verdict
- suspicious
- Confidence
- medium
- Model
- gpt-5-mini
- Summary
- The plugin's code mostly matches its stated purpose (Zalo group moderation) but it reads/writes global OpenClaw config and session files and auto-enables system-wide bindings — behavior that is powerful and out-of-band enough to warrant caution before installing.
- Guidance
- What to consider before installing: - The code will read openclaw.json and agent session files (agents/*/sessions/sessions.json) to discover groups and may read IDENTITY.md; review those files for sensitive data you don't want the plugin to access. - The setup script and runtime will automatically modify openclaw.json: it can add the plugin entry, add bindings for the zalouser channel, and set channels.zalouser.groups = {'*': {enabled: true, requireMention: false}}. That effectively gives the plugin access to group messages without explicit mentions — make sure you want that behavior. - The package does not exfiltrate data externally in the code provided, but because it reads session JSON and writes local stores/memory digests, treat it as a privileged local component. - Recommended precautions: (1) Run setup.js in a controlled/test environment first (use --openclaw-home to point at a copy). (2) Inspect the backup openclaw.json produced by the script before deploying. (3) Audit agents/*/sessions/sessions.json contents to confirm no secrets are exposed or accessible you aren't comfortable with. (4) Confirm storage locations (plugin data/ and skills/memory/) have appropriate access controls. - If you need higher assurance, request the author to remove or require explicit admin confirmation before auto-patching global bindings and channel settings, or modify the plugin to only patch its own plugin entry and require manual binding/channel changes.
Review Dimensions
- Purpose & Capability
- okName/description (Zalo moderation, slash commands, anti-spam, zero-token) align with the code: handlers for spam detection, warn store, slash commands, and utilities to discover groups and bot name. The code's efforts to auto-provision bindings and channel group entries are explainable as convenience for a moderation plugin.
- Instruction Scope
- concernRuntime instructions and code access OpenClaw installation state: they read agents/*/sessions/sessions.json, openclaw.json, and IDENTITY.md. The plugin extracts group IDs/names from session files and writes configuration and store files (violations/warned/settings) locally. While this is needed to discover groups and operate without tokens, reading full sessions.json may surface sensitive session data and the script has broad discretion to modify system config.
- Install Mechanism
- okThere is no remote download/install step in the package metadata or SKILL.md — code is included in the package and setup is a local Node script. No external URLs, archive extraction, or third-party installers were observed.
- Credentials
- noteThe skill declares no required env vars and the SKILL.md and code only reference OPENCLAW_HOME / OPENCLAW_STATE_DIR for locating the OpenClaw install — which is reasonable. It does scan agent session files (local) but it does not request or require external API keys or tokens in metadata.
- Persistence & Privilege
- concernThe setup script and runtime auto-patch logic write to openclaw.json (backing up first in setup.js) and will add bindings, channels.zalouser.groups, and plugin entries. Modifying system-wide OpenClaw configuration and channel bindings is a significant privilege even if justified for automation — this increases blast radius and should be reviewed by an administrator prior to running.
