Back to skill

Security audit

WebChat Voice Full Stack

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed voice-stack installer, but it runs mutable downstream installer scripts and overstates its checksum protection.

Review and pin the three downstream skills before using this. Do not treat rehash.sh as proof of a safe download; it only records a local trust baseline after installation. Be aware that deployment can install user-level services, modify OpenClaw gateway/UI behavior, and run downstream scripts with your user privileges.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (3)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/rehash.sh:26
Finding

Integrity Verification Fails to Detect Unlisted or Non-Shell Dependency Files

Content
View full analysis
&2 continue fi while IFS= read -r -d '' script; do rel_path="${script#"$SKILLS_DIR/"}" hash="$(sha256sum "$script" | awk '{print $1}')" echo "$hash $rel_path" >> "$CHECKSUMS" ((count++)) done < <(find "$script_dir" -type f -name '*.sh' -print0 | sort -z) done ``` The resulting manifest is verified as follows: ```bash while IFS= read -r line; do # skip comments and empty lines [[ "$line" =~ ^[[:space:]]*# ]] && continue [[ -z "${line// }" ]] && continue local expected_hash file_rel expected_hash="$(echo "$line" | awk '{print $1}')" file_rel="$(echo "$line" | awk '{print $2}')" local file_abs="$SKILLS_DIR/$file_rel" if [[ ! -f "$file_abs" ]]; then echo " MISSING: $file_rel" >&2 ((failed++)) continue fi local actual_hash actual_hash="$(sha256sum "$file_abs" | awk '{print $1}')" if [[ "$actual_hash" != "$expected_hash" ]]; then echo " MISMATCH: $file_rel" >&2 echo " expected: $expected_hash" >&2 echo " actual: $actual_hash" >&2 ((failed++)) else echo " OK: $file_rel" fi done < "$CHECKSUMS" ``` ### Technical Analysis The baseline-generation process includes only files ending in `.sh`. It does not cover Python, JavaScript, service definitions, configuration files, or other payloads that a downstream deployment script may execute, install, or copy. The generator also silently skips a dependency whose `scripts` directory is absent. The verifier only checks entries already present in the manifest; it does not compare the manifest against an authoritative list ...[truncated 1430 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:29
Finding

Unpinned Registry Dependencies Are Executed as Trusted Deployment Code

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
scripts/status.sh:9
Finding

Status Command Executes Unverified Dependency-Controlled Scripts

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (10)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · SKILL.md (reported line 131)May include surrounding context.

3. STT Backend (service, venv)

systemctl --user stop openclaw-transcribe.service systemctl --user disable openclaw-transcribe.service rm -f ~/.config/systemd/user/openclaw-transcribe.service systemctl --user daemon-reload

text

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding

The skill instructs users to run npx clawhub install ... without pinning a specific package version. This creates a supply-chain risk because the fetched package can change over time or be replaced upstream, causing users to install unreviewed code despite the later checksum step only applying after installation.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding

This line repeats the use of unpinned npx clawhub install for a sub-skill dependency. An attacker controlling or compromising the registry or package publisher could deliver altered code before any local checksum baseline is established.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding

The third prerequisite install command also relies on unpinned npx clawhub, exposing users to the same mutable upstream dependency risk. In a meta-installer that chains multiple skills, this broadens the attack surface because compromise of any fetched component can affect the final deployment.

Content

No source excerpt is available for this finding.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 87)May include surrounding context.

md
Safety characteristics:
- all changes are documented and reversible via uninstall scripts
- no root/sudo required (user scope only)
- no hidden background tasks beyond documented services
- no outbound telemetry or data exfiltration behavior

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

The workflow again tells users to fetch sub-skills using unpinned npx clawhub install <sub-skill>. Although the skill describes a checksum verification process afterward, that mechanism does not protect the initial retrieval step and can normalize trusting whatever was first downloaded.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Scope Creep

Low
Category
Excessive Agency
Confidence
70% confidence
Finding

Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.

Content

Scanner excerpt · SKILL.md (reported line 88)May include surrounding context.

md
Safety characteristics:
- all changes are documented and reversible via uninstall scripts
- no root/sudo required (user scope only)
- no hidden background tasks beyond documented services
- no outbound telemetry or data exfiltration behavior

### Integrity verification

Static analysis

No suspicious patterns detected.