Back to skill

Security audit

Config Validator

Security checks for vulnerabilities and agentic risk

Overview

This is a local configuration checker that reads expected project config files and reports problems, with no evidence of exfiltration, persistence, or destructive behavior.

Before installing, treat this as a local project config checker that will read your .env file. It does not appear to leak secrets, but update the npm dependencies, review any future implementation of --fix before using it, and do not rely on it to fail closed when required environment variables are missing.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (17)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · index.js (reported line 14)May include surrounding context.

js
// Determine workspace root
const WORKSPACE_ROOT = path.resolve(__dirname, '../../');
const ENV_FILE = path.join(WORKSPACE_ROOT, '.env');
const OPENCLAW_JSON = path.join(WORKSPACE_ROOT, 'openclaw.json');
const PACKAGE_JSON = path.join(WORKSPACE_ROOT, 'package.json');

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · index.js (reported line 44)May include surrounding context.

js
}

function checkEnv() {
    log('Checking .env file...');
    if (!fs.existsSync(ENV_FILE)) {
        log('Error: .env file missing!', 'ERROR');
        return { valid: false, issues: ['Missing .env file'] };

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · index.js (reported line 46)May include surrounding context.

js
}

function checkEnv() {
    log('Checking .env file...');
    if (!fs.existsSync(ENV_FILE)) {
        log('Error: .env file missing!', 'ERROR');
        return { valid: false, issues: ['Missing .env file'] };

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · index.js (reported line 47)May include surrounding context.

js
}

function checkEnv() {
    log('Checking .env file...');
    if (!fs.existsSync(ENV_FILE)) {
        log('Error: .env file missing!', 'ERROR');
        return { valid: false, issues: ['Missing .env file'] };

Known Vulnerable Dependency: brace-expansion==1.1.12 — 4 advisory(ies): CVE-2026-13149 (brace-expansion: DoS via exponential-time expansion of consecutive non-expanding); CVE-2026-33750 (brace-expansion: Zero-step sequence causes process hang and memory exhaustion); CVE-2026-14257 (brace-expansion: DoS via unbounded expansion length causing an out-of-memory pro) +1 more

High
Category
Supply Chain
Confidence
92% confidence
Finding

brace-expansion 1.1.12 is flagged with multiple DoS advisories, and it is present in the resolved dependency tree. Even though it is a transitive dev dependency, vulnerable glob/pattern expansion can still be triggered during local development or CI runs, causing excessive CPU or memory consumption.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: minimatch==3.1.2 — 3 advisory(ies): CVE-2026-27904 (minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regu); CVE-2026-26996 (minimatch has a ReDoS via repeated wildcards with non-matching literal in patter); CVE-2026-27903 (minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adja)

High
Category
Supply Chain
Confidence
91% confidence
Finding

minimatch 3.1.2 has multiple ReDoS advisories and appears in the dependency tree as a transitive dependency of glob. Crafted glob patterns can trigger catastrophic backtracking or heavy computation, which is especially relevant in CI or developer tooling that accepts untrusted patterns.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: js-yaml==4.1.0 — 5 advisory(ies): CVE-2026-84375 (js-yaml: maxTotalMergeKeys does not limit CPU use for empty merge sources); CVE-2026-59869 (js-yaml: YAML merge-key chains can force quadratic CPU consumption); GHSA-5p4m-2wfm-xmqj (JS-YAML: Quadratic CPU consumption in !!omap resolution (3.x and 4.x) — CVE-2026) +2 more

High
Category
Supply Chain
Confidence
89% confidence
Finding

js-yaml 4.1.0 is associated with multiple CPU exhaustion issues, and the exact version is locked in this file. Although it is a dev dependency used through mocha, parsing attacker-controlled YAML in test infrastructure or automation could still enable denial of service.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: minimatch==4.2.1 — 3 advisory(ies): CVE-2026-27904 (minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regu); CVE-2026-26996 (minimatch has a ReDoS via repeated wildcards with non-matching literal in patter); CVE-2026-27903 (minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adja)

High
Category
Supply Chain
Confidence
90% confidence
Finding

minimatch 4.2.1 is separately present and flagged for ReDoS issues, so this is not duplicative of the 3.1.2 finding. Any code path that evaluates attacker-controlled glob expressions through this version may suffer excessive CPU consumption and service slowdown.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: nanoid==3.3.1 — 4 advisory(ies): CVE-2026-67214 (nanoid: non-secure generators can loop indefinitely with negative size); CVE-2026-67213 (nanoid: custom generators can loop indefinitely when size is zero); CVE-2024-55565 (Predictable results in nanoid generation when given non-integer values) +1 more

High
Category
Supply Chain
Confidence
84% confidence
Finding

nanoid 3.3.1 is present and has advisories covering predictable output and potential infinite-loop conditions in certain generator misuse cases. In this context it is a dev dependency pulled by mocha, which lowers direct production exposure, but it can still affect tooling integrity or availability if unsafe code paths are exercised.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: picomatch==2.3.1 — 2 advisory(ies): CVE-2026-33672 (Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Mat); CVE-2026-33671 (Picomatch has a ReDoS vulnerability via extglob quantifiers)

High
Category
Supply Chain
Confidence
88% confidence
Finding

picomatch 2.3.1 is locked in and carries method-injection/ReDoS style advisories related to crafted glob patterns. Since picomatch is commonly used for file matching, malicious patterns in automation, tests, or developer tooling can lead to incorrect matching or denial of service.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: serialize-javascript==6.0.0 — 3 advisory(ies): GHSA-5c6j-r48x-rmvq (Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.to); CVE-2024-11831 (Cross-site Scripting (XSS) in serialize-javascript); CVE-2026-34043 (Serialize JavaScript has CPU Exhaustion Denial of Service via crafted array-like)

High
Category
Supply Chain
Confidence
93% confidence
Finding

serialize-javascript 6.0.0 has high-severity advisories including potential RCE/XSS depending on how serialized output is consumed, and the vulnerable version is present as a mocha dependency. Even in dev/test tooling, serializing attacker-controlled objects and later embedding or evaluating the result can create serious compromise paths.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill documentation advertises a --fix mode that can create or repair configuration files, but it does not clearly warn that running this mode may modify important project files. In an agent or automation context, unclear disclosure about write-capable behavior can lead to unintended configuration changes, overwrites, or environment drift if a user assumes the tool is read-only validation.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script advertises that it ensures critical configurations are present, but in checkEnv() missing critical environment variables are only logged as warnings and the result is still marked valid. This can let the system proceed in a misconfigured state, causing downstream failures or insecure fallback behavior if other components assume required secrets and connection settings were verified.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: diff==5.0.0 — 1 advisory(ies): CVE-2026-24001 (jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch)

Low
Category
Supply Chain
Confidence
77% confidence
Finding

diff 5.0.0 is listed with a DoS advisory affecting patch parsing/application logic, and the lockfile confirms that exact version is installed. In this skill context it is only a dev dependency via mocha, so exposure is limited to test or CI workflows unless untrusted patch data is processed there.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
40% confidence
Finding

Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Content

Scanner excerpt · package.json (reported line 18)May include surrounding context.

json
"author": "OpenClaw Evolver",
  "license": "MIT",
  "dependencies": {
    "dotenv": "^16.0.0"
  },
  "devDependencies": {
    "chai": "^4.3.0",

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
40% confidence
Finding

Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Content

Scanner excerpt · package.json (reported line 21)May include surrounding context.

json
"dotenv": "^16.0.0"
  },
  "devDependencies": {
    "chai": "^4.3.0",
    "mocha": "^9.0.0"
  },
  "engines": {

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
40% confidence
Finding

Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Content

Scanner excerpt · package.json (reported line 22)May include surrounding context.

json
},
  "devDependencies": {
    "chai": "^4.3.0",
    "mocha": "^9.0.0"
  },
  "engines": {
    "node": ">=18.0.0"