DepGuard

PassAudited by VirusTotal on May 12, 2026.

Overview

Type: OpenClaw Skill Name: depguard Version: 1.0.1 The OpenClaw DepGuard skill is classified as benign. It performs dependency auditing, vulnerability scanning, and license compliance checks as advertised. All operations, including scanning, reporting, fixing, and license validation, are designed to run locally without external data exfiltration or 'phone-home' behavior, which is explicitly stated and confirmed by the code. While the skill executes powerful commands (e.g., `npm audit fix`, `git hooks install`) that modify the user's project, these actions are central to its stated purpose and are clearly documented. The shell scripts (`scripts/*.sh`) consistently quote user-provided directory arguments, mitigating direct shell injection risks. There is no evidence of malicious intent, obfuscation, or attempts at unauthorized access or persistence beyond the documented git hooks.

Findings (0)

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.

ConcernMedium Confidence
ASI05: Unexpected Code Execution
What this means

Using a malicious or malformed license key could potentially run unintended local commands when Pro or Team features validate the license.

Why it was flagged

A decoded license JWT payload, ultimately controlled by the configured license key, is interpolated directly into Python code executed with python3 -c. A crafted payload containing quotes or code syntax could change what the interpreter runs during license checks.

Skill content
payload=$(decode_jwt_payload "$key") ... tier=$(extract_field "$payload" "tier") ... python3 -c "import json; print(json.loads('$json').get('$field', ''))"
Recommendation

Do not interpolate JSON or paths into interpreter source strings. Pass data via stdin, files, environment variables, or argv; properly escape values; and verify JWT signatures before trusting license claims.

What this means

A user may believe dependency names and versions never leave the machine, when the underlying audit tools may contact external registries or vulnerability databases.

Why it was flagged

The implementation invokes native audit tools such as npm audit, pip-audit, safety, govulncheck, composer audit, and similar commands. Those tools may query external vulnerability services with package metadata, so the blanket privacy statement is under-disclosed.

Skill content
- All scanning happens locally using native audit tools
- No code or dependency data is sent externally
Recommendation

Clarify which audit tools may use network services, what dependency metadata they may send, and provide an explicit offline mode or user approval before networked audits.

What this means

Scans and fixes can reveal dependency metadata to provider tools and auto-fix can change package versions or lockfiles.

Why it was flagged

Delegating to package-manager audit and fix tools is central to the skill's purpose, but these commands can affect project dependencies and may interact with external package ecosystems.

Skill content
Runs native audit commands (npm audit, pip-audit, cargo audit, etc.) ... `depguard fix [directory]` Auto-fix vulnerabilities by upgrading to patched versions where available.
Recommendation

Run scans/fixes only in intended project directories, review package and lockfile diffs, and avoid auto-fix on critical branches without version control.

NoteHigh Confidence
ASI10: Rogue Agents
What this means

After installation, commits that modify lockfiles may be blocked until vulnerabilities are addressed or the hook is bypassed.

Why it was flagged

The hook configuration persists a pre-commit action that sources the skill scanner and runs on lockfile changes. This is disclosed and scoped to the repository, with an uninstall path.

Skill content
pre-commit: ... source "$DEPGUARD_SKILL_DIR/scripts/scanner.sh" ... do_scan . ... fail_text: Dependency vulnerabilities detected!
Recommendation

Install hooks only in repositories where this behavior is desired, keep the skill directory protected from tampering, and use the documented uninstall command if continuous checks are no longer wanted.

What this means

The skill can access the configured DepGuard license key locally for feature gating.

Why it was flagged

The skill reads a DepGuard license key from either an environment variable or the OpenClaw config. This is declared and expected for paid features.

Skill content
OPENCLAW_CONFIG="${HOME}/.openclaw/openclaw.json" ... DEPGUARD_LICENSE_KEY="${DEPGUARD_LICENSE_KEY:-}" ... cfg.get('skills', {}).get('entries', {}).get('depguard', {}).get('apiKey', '')
Recommendation

Store the license key only in the intended OpenClaw config or environment variable, and avoid sharing logs or terminal output that may expose configuration details.