Back to skill

Security audit

Cognitive Skill Factory

Security checks for vulnerabilities and agentic risk

Overview

The skill is a decision-support bundle, but its helper script can bulk-install unpinned external skills without confirmation and its documented bundle contents do not fully match that script.

Review the listed dependency skills before installing. Prefer manual installation of specific skills or pinned, publisher-verified versions instead of running scripts/install-all.sh as-is, and note that the installer currently covers only 10 of the 17 skills advertised.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (1)

T08 · Insecure Dependencies

Error
Location
scripts/install-all.sh:7
Finding

Unpinned Third-Party Skills Are Installed Without Interactive Confirmation

Content
View full analysis

Vulnerability Details

File Location: scripts/install-all.sh:7-29
Vulnerability Type: Supply-chain exposure through unpinned and non-interactive dependency installation
Risk Level: High

bash
# 定义 Skill 列表
SKILLS=(
  "zhang-yiming-perspective"
  "huang-zheng-perspective"
  "ma-huateng-perspective"
  "ren-zhengfei-perspective"
  "sequoia-investment-framework"
  "lei-jun-perspective"
  "wang-xing-perspective"
  "zhang-lei-perspective"
  "hillhouse-investment-framework"
  "bytedance-organization-framework"
)

# 批量安装
for skill in "${SKILLS[@]}"; do
  echo "📦 安装 $skill ..."
  clawhub install "$skill" -y
  if [ $? -eq 0 ]; then
    echo "✅ $skill 安装成功"
  else
    echo "❌ $skill 安装失败"
  fi
  echo ""
done

Technical Analysis

The script installs ten third-party ClawHub skills using mutable package names. It does not pin package versions or immutable content digests, verify publisher identities or signatures, or validate the downloaded contents against known hashes.

The -y option disables interactive confirmation, so users cannot inspect or reject the resolved packages during execution. Consequently, the effective installed content may differ from the content that was reviewed in this repository. This creates a supply-chain trust boundary: security depends on the ClawHub registry, package maintainers, name resolution, and the current package versions returned at installation time.

The repository itself does not contain a confirmed malicious payload. Exploitation requires one of the named external skills, its publisher account, or the associated distribution infrastructure to be compromised, substituted, or maliciously updated.

Attack Path

  1. An attacker compromises a publisher account, distribution path, or registry entry associated with one of the listed skill names, or otherwise causes a malicious package to resolve under that name.
  2. The attacker publishes a ...[truncated 1248 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin every external skill to an immutable, reviewed version and preferably a cryptographic content digest.
  2. Maintain a lock file or signed dependency manifest recording each package name, exact version, publisher identity, and expected hash.
  3. Require cryptographic signature verification and reject packages whose signer does not match an explicitly trusted publisher.
  4. Remove -y from the default installation flow. Present the exact resolved version, publisher, requested permissions, and integrity information before installation.
  5. Download dependencies into a quarantine or staging area and audit their instructions, scripts, manifests, and requested capabilities before activation.
  6. Fail closed if a package version, digest, signature, or publisher cannot be verified; do not silently continue to subsequent installations.
  7. Execute installed skills with least privilege, filesystem and network isolation, and narrowly scoped tool permissions.
  8. Add automated dependency monitoring and repeat the security review whenever a pinned dependency is intentionally upgraded.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The description presents the skill as a cognitive framework collection for decision support, but the supplied code chunk is only an installation helper script. Its primary behavior is to install a fixed list of 10 skills using clawhub install and report success/failure. That is materially different from the declared end-user functionality. Additionally, the declared bundle says it includes 17 top-level skills (10 Chinese + 7 international masters), but this script lists only 10 skills and none of the named international masters, so the represented contents do not match the code shown.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This file contains user-facing natural-language policy content exclusively in Chinese, and nowhere indicates that users may choose another language or that the locale restriction is required for a region-specific purpose. Under the language/locale policy rule, forcing a specific language without opt-in is a policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
80% confidence
Finding

该文件从标题、介绍、安装说明到使用示例全部以中文编写,没有提供多语言选项、英文版本指引,或说明这是面向特定中文用户/地区的限定技能。按规则,未获用户选择即隐含强制单一语言/locale,属于自然语言层面的语言政策风险。

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The listed trigger phrases include broad natural-language patterns such as “思维框架”, “决策工具”, and especially “用 XX 的视角”, which could overlap with ordinary user requests rather than clearly scoped skill invocations. The file does not provide negative examples, context limits, or rules clarifying when the skill should or should not activate.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The display name, description, features, and tags are primarily Chinese-language strings, but the manifest does not state that the skill is China/Chinese-language specific or offer any language choice. Under the policy for natural-language violations, forcing a specific language without opt-in can be a locale-policy issue.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This shell script presents all comments and user-facing messages in Chinese, including installation progress and usage examples. Because the file provides no opt-in, fallback, or justification for a Chinese-only locale, it creates a natural-language policy concern under the language/locale rule.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The manifest description and trigger definitions assume Chinese as the operating language, and the usage examples continue this constraint without offering alternatives. This can violate language-choice policy when a skill appears to require a specific language without explicit user opt-in or documented justification.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.