Back to skill

Security audit

iris-code-formatter

Security checks for vulnerabilities and agentic risk

Overview

This skill is a Chinese IRIS/ObjectScript code-formatting guide with no executable payload, though its optional npx install command should be treated cautiously.

Install only through a trusted ClawHub/OpenClaw path or a pinned, verified CLI version. Expect the skill to apply a strict Chinese-language IRIS/ObjectScript style guide and to output full corrected code for review before you apply changes.

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

Warning
Location
IRIS 代码格式化 Skill 使用说明.md:22
Finding

Unpinned npm CLI Package Execution Through npx

Content
View full analysis
--no-input ``` ``` ### Technical Analysis The installation guide directs users to invoke `clawhub` through `npx` without specifying an exact package version or integrity hash. If the package is not already available locally, `npx` can retrieve and execute the version resolved from the configured npm registry. The project does not include a package lockfile, integrity metadata, vendored installer, or other mechanism that establishes which implementation of the CLI will execute. The `--no-input` option also causes installation to proceed without interactive confirmation. This creates a supply-chain risk because the code executed by the documented command can change independently of the audited Skill. A compromised registry account, package takeover, malicious future release, or unsafe registry configuration could cause attacker-controlled package code to run. ### Attack Path 1. An attacker compromises the npm package or publisher account associated with the resolved `clawhub` package, publishes a malicious future release, or influences the user's npm registry configuration. 2. A user follows the installation instructions and runs the documented `npx clawhub install ... --no-input` command. 3. `npx` resolves and downloads the attacker-controlled package version because no exact version or integrity value is required. 4. Package lifecycle code or the CLI entry point executes with the privileges of the user running the command. 5. The malicious package can access resources available to that user and may alter the requested installation output or perform unrelated local actions. ### Impact Assessment Successful exploitation woul ...[truncated 768 chars]
Remediation
View remediation
install iris-code-formatter --workdir ``` 2. Document the expected npm package publisher, registry, package version, and integrity hash. 3. Prefer a trusted, previously installed CLI whose version is verified before use. 4. Where supported, use a lockfile or an equivalent dependency-locking mechanism that records integrity metadata. 5. Avoid noninteractive installation by default. Remove `--no-input` unless automated deployment explicitly requires it and validates all inputs beforehand. 6. Recommend running the installer with a least-privileged account in an isolated environment. 7. Add a verification step that checks the downloaded Skill contents against a published checksum or signed release before activation. ]]>
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (10)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The changelog title is presented in Chinese ("更新日志"), indicating the skill materials are localized to a specific language. Because no opt-in, alternative language choice, or region-specific justification is provided in this file, this may violate the language/locale policy requiring user choice or documented justification.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

The documentation instructs users to run npx clawhub install iris-code-formatter without pinning a specific package version. This creates a supply-chain risk because the resolved package can change over time or be replaced by a compromised release, causing users to install unreviewed code during setup.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill is described as auto-activating whenever IRIS/ObjectScript code is pasted or certain broad phrases are used. Overly broad activation increases the chance the skill runs in unintended contexts, which can lead to unsolicited code transformation, review output, or automatic fixes being applied to sensitive or unrelated content.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill content and operating instructions are entirely written in Chinese and present the behavior as fixed, with no indication that users may choose another language. Under the policy, forcing a specific language without user opt-in is a natural-language policy concern unless the locale restriction is explicitly justified.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger condition includes a broad catch-all for essentially any IRIS/Cache/ObjectScript formatting-related request, which can cause the skill to activate outside narrowly intended scenarios. Over-broad activation increases the chance of inappropriate routing, unexpected instruction precedence, or accidental application of the skill to user requests where it was not explicitly desired.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The entire skill documentation is written in Chinese and does not indicate that other languages are supported or that Chinese is a required, region-specific constraint. Under the language/locale policy, forcing a single language without user opt-in or documented justification is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

Line L020 states that mixed pinyin-English naming is strictly prohibited and that direct use of Chinese is even more disallowed. This is a natural-language language policy constraint, but the document does not offer a user choice or explain a justified locale-specific requirement, which matches the language/locale policy violation criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This markdown file contains natural-language guidance exclusively in Chinese and does not indicate that the user can select another language or that the skill is intentionally limited to a Chinese-speaking audience. Under the policy, forcing a specific language without user opt-in is a locale/language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

Line L072 states that all SQL commands must be uniformly lowercase. This is a natural-language policy constraint on language/locale/style choice, and the document does not present it as optional or justified by a region-specific requirement.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

Line L249 says commands must not use mixed case and must be uniformly lowercase. This is an organizational natural-language policy requirement that forces a specific language/style convention without offering user choice or explaining why the restriction is necessary.

Content

No source excerpt is available for this finding.