Back to skill
Skillv0.4.84

ClawScan security

Wip Ldm Os Private · ClawHub's context-aware review of the artifact, metadata, and declared behavior.

Scanner verdict

SuspiciousApr 28, 2026, 10:52 PM
Verdict
suspicious
Confidence
medium
Model
gpt-5-mini
Summary
The package mostly matches an installer/updater for 'LDM OS', but it includes persistent, sensitive changes (modifying shell profiles to export a 1Password service-account token, touching Claude/OpenClaw config files, and hosting server code) and prompt-injection indicators that are not scoped or declared — the user should review those parts before installing.
Guidance
What to check before installing: - Read the code that will run locally: open bin/ldm.js and lib/deploy.mjs (and search for ensureShellProfileSaToken, OP_SERVICE_ACCOUNT_TOKEN, op-sa-token, and any code that writes ~/, ~/.zprofile, ~/.zshrc, ~/.bash_profile, ~/.claude.json). Verify exactly what will be appended and when. - Back up your shell profile(s) (~/.zshrc/.zprofile/.bash_profile) and ~/.claude.json before running ldm install so you can restore them. - Inspect references to secrets and remote endpoints: search the repo for ~/.openclaw/secrets, OP_SERVICE_ACCOUNT_TOKEN, 'mcp.remote', 'url', 'auth', and any hard-coded hostnames. Confirm you’re comfortable exposing the 1Password SA token file to the shell environment (this token unlocks access to many secrets). - If you only want a dry-run, follow SKILL.md’s guidance: run npm install -g @wipcomputer/wip-ldm-os locally in a sandbox or VM and then ldm install --dry-run. Do not allow the install step until you confirm changes. - Evaluate whether you trust the package owner and hosting. The codebase contains a hosted MCP server and deploy scripts — if you do not trust that origin, avoid installing network-facing components. - Consider installing in a throwaway/test account or VM first to observe behavior (particularly modifications to shell profiles and ~/.claude.json) before deploying on a primary machine. - If anything is unclear, ask the publisher to explicitly document and surface any actions that modify shell profiles or move sensitive tokens into env, and to provide a safe opt-out for that behavior. Why I marked this suspicious: the package content is broadly consistent with an installer, but it also includes undeclared, high-impact changes (persistently exporting a 1Password SA token into the shell environment and editing agent runtime configs) and prompt-injection indicators in SKILL.md. Those increase risk and deserve explicit user consent and careful review.
Findings
[system-prompt-override] unexpected: Detected in SKILL.md frontmatter/content. Installer instructions should not attempt to override agent/system prompts; this is a prompt-injection pattern and is unexpected for a benign installer.
[unicode-control-chars] unexpected: Detected in SKILL.md. Unicode control characters can be used to obfuscate or hide content in prompts or files; this is unusual for a straightforward installer description and warrants manual review.

Review Dimensions

Purpose & Capability
noteThe skill is labelled an installer/updater and the install spec (npm package @wipcomputer/wip-ldm-os) plus required binaries (git, npm, node) are coherent with that purpose. The repo contains a full CLI (bin/ldm.js), deploy/doctor logic and many docs which is expected for an 'OS' installer. However the bundle also includes a hosted MCP server and deployment scripts (src/hosted-mcp/server.mjs, deploy.sh, scp/ssh instructions) and release notes describe modifying users' shell profiles to export OP_SERVICE_ACCOUNT_TOKEN. Those are plausible for a system that integrates deeply with agent tooling, but are higher-impact capabilities that should have been called out explicitly in the skill metadata (required config paths / declared privileged actions).
Instruction Scope
concernSKILL.md tells the agent to run system commands (which ldm, ldm status, npm install -g, ldm init/install/doctor) and to perform dry-runs unless the user says 'install' — that is good practice. But the codebase and release notes indicate the installer will append an export for OP_SERVICE_ACCOUNT_TOKEN into the user's shell profile, edit/clean ~/.claude.json and other harness configs, and remove certain env overrides. Those are wide-reaching, persistent changes to user environment and agent harness config that are not surfaced as required config or warned about in the skill metadata; the runtime instructions do not explicitly warn the user about automatic shell-profile edits (the README/RELEASE-NOTES mention it). Also pre-scan detection found 'system-prompt-override' and 'unicode-control-chars' in SKILL.md, which suggests attempt(s) to manipulate agent prompts or hide content — a red flag for instruction integrity.
Install Mechanism
okInstallation is via a named npm package (@wipcomputer/wip-ldm-os) that creates an 'ldm' binary. Using npm is a conventional install mechanism and the registry metadata matches that. This is a moderate-risk install because it will write many files under ~/.ldm and create CLI binaries, but the mechanism itself is standard (not an arbitrary remote tarball URL).
Credentials
concernThe skill declares no required env vars or config paths, yet the release notes and codebase describe writing a shell-profile export that exposes OP_SERVICE_ACCOUNT_TOKEN from ~/.openclaw/secrets/op-sa-token for headless access to 1Password service-account secrets. That operation reveals/propagates a highly sensitive credential into every child process launched from the shell and persists across sessions. The installer also reads/writes ~/.claude.json, ~/~/.claude/settings.json, and other harness-specific config files. These credential/config manipulations are high risk and were not declared in the skill's metadata as required or privileged IO.
Persistence & Privilege
noteThe skill does not request always:true and is user-invocable, which is appropriate. However the installer explicitly performs persistent system changes (creating ~/.ldm, modifying shell profiles, editing ~/.claude.json, registering/unregistering MCP entries). Those are normal for an installer but materially elevate its blast radius — especially the shell-profile change that exports an SA token. The user should treat this package as capable of persistent privileged changes and review what it will write before consenting to install.