Back to skill

Security audit

How to Harness

Security checks for vulnerabilities and agentic risk

Overview

This is a markdown-only facilitation skill for designing Harness-style AI systems, with no artifact-backed evidence of hidden execution, exfiltration, or destructive behavior.

Review the skill’s strong process constraints before use, and prefer project-local or manually inspected installation when possible. Avoid running unpinned `npx` installers with elevated privileges, and use the global install only if you want this facilitation behavior available across future projects.

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
README-en.md:212
Finding

Unpinned Third-Party Installer Executes Mutable Supply-Chain Content

Content
View full analysis

Vulnerability Details

File Location: README-en.md, lines 212–221
Vulnerability Type: T08: Insecure Dependencies
Risk Level: Medium

Complete Code Snippet

markdown
## Install

Via [skills.sh](https://skills.sh) (works for Claude Code / Cursor / Codex / CodeBuddy / OpenCode / 50+ agents):

```bash
# global (available in all projects)
npx skills add dimayip/how-to-harness -g -a claude-code

# project-only (committed with your repo)
npx skills add dimayip/how-to-harness -a codebuddy
text

The same commands are duplicated in the Chinese documentation at `README.md`, lines 212–221.

### Technical Analysis

The documented installation procedure invokes `npx skills` without pinning an exact npm package version. `npx` may resolve and execute the package version currently available from the configured npm registry. The command also identifies the Skill through the mutable GitHub repository name `dimayip/how-to-harness`, rather than an immutable commit and verified digest.

Consequently, the code and content executed or installed at installation time are not necessarily the same artifacts reviewed during this audit. The security boundary therefore depends on the npm package, package publisher account, registry resolution, GitHub account, and repository state remaining trustworthy.

The `-g` example increases scope by installing the Skill globally for the selected agent platform. Global installation is not necessary for project-specific use and can expose future projects and sessions to subsequently installed instructions.

The badge URLs at lines 9–11 are not executable downloads. They are ordinary GitHub links containing externally hosted Shields.io images and are not the source of this finding.

### Attack Path

1. A user copies one of the documented `npx skills add` commands.
2. `npx` resolves the unpinned `skills` package through the user's configured npm registry.
3. The resolved package executes with the operating-system privileges of t
...[truncated 1365 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the installer to a reviewed, exact version, for example by using an explicit skills@<exact-version> reference.
  2. Pin the Skill source to an immutable Git commit or signed release instead of relying only on a mutable repository name.
  3. Publish and verify cryptographic hashes for release artifacts before installation.
  4. Prefer project-local installation by default. Present global installation only as an explicit opt-in with a warning that it affects other projects and future sessions.
  5. Document a manual installation path from a verified release archive so users can inspect the content before placing it in an agent's Skill directory.
  6. Use signed releases or provenance attestations where supported, and document how users can verify them.
  7. Add explicit trust-boundary documentation explaining that npx executes third-party package code with the invoking user's privileges.
  8. Avoid elevated execution and advise users not to run the command with sudo or an administrator account.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (21)

Context Leakage

High
Category
Data Exfiltration
Confidence
75% confidence
Finding

Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Content

Scanner excerpt · README-en.md (reported line 54)May include surrounding context.

md
**Agent 的第一反应错误示范**:立即输出完整架构图、开始写 PRD、提供技术栈建议。

**Agent 的正确第一反应**:先做 Layer 1 Capture Context。

---

Context Leakage

High
Category
Data Exfiltration
Confidence
75% confidence
Finding

Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Content

Scanner excerpt · README-en.md (reported line 161)May include surrounding context.

md
**Agent 的第一反应错误示范**:立即输出完整架构图、开始写 PRD、提供技术栈建议。

**Agent 的正确第一反应**:先做 Layer 1 Capture Context。

---

Context Leakage

High
Category
Data Exfiltration
Confidence
75% confidence
Finding

Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Content

Scanner excerpt · README.md (reported line 54)May include surrounding context.

md
**Agent 的第一反应错误示范**:立即输出完整架构图、开始写 PRD、提供技术栈建议。

**Agent 的正确第一反应**:先做 Layer 1 Capture Context。

---

Context Leakage

High
Category
Data Exfiltration
Confidence
75% confidence
Finding

Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Content

Scanner excerpt · README.md (reported line 161)May include surrounding context.

md
**Agent 的第一反应错误示范**:立即输出完整架构图、开始写 PRD、提供技术栈建议。

**Agent 的正确第一反应**:先做 Layer 1 Capture Context。

---

Context Leakage

High
Category
Data Exfiltration
Confidence
75% confidence
Finding

Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Content

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

md
**Agent 的第一反应错误示范**:立即输出完整架构图、开始写 PRD、提供技术栈建议。

**Agent 的正确第一反应**:先做 Layer 1 Capture Context。

---

Context Leakage

High
Category
Data Exfiltration
Confidence
75% confidence
Finding

Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Content

Scanner excerpt · references/ralph-case-study.md (reported line 15)May include surrounding context.

md
**Agent 的第一反应错误示范**:立即输出完整架构图、开始写 PRD、提供技术栈建议。

**Agent 的正确第一反应**:先做 Layer 1 Capture Context。

---

Context Leakage

High
Category
Data Exfiltration
Confidence
75% confidence
Finding

Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Content

Scanner excerpt · references/ralph-case-study.md (reported line 19)May include surrounding context.

md
**Agent 的第一反应错误示范**:立即输出完整架构图、开始写 PRD、提供技术栈建议。

**Agent 的正确第一反应**:先做 Layer 1 Capture Context。

---

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.

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.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · README-en.md (reported line 263)May include surrounding context.

md
## ⭐ Star 历史

[![Star History Chart](https://api.star-history.com/svg?repos=dimayip/how-to-harness&type=Date)](https://star-history.com/#dimayip/how-to-harness&Date)

---

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · README.md (reported line 263)May include surrounding context.

md
## ⭐ Star 历史

[![Star History Chart](https://api.star-history.com/svg?repos=dimayip/how-to-harness&type=Date)](https://star-history.com/#dimayip/how-to-harness&Date)

---

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest description and the skill body are written as direct operating instructions in Chinese, with no indication that the user may choose another language. This creates a natural-language locale policy issue because the skill appears to constrain interaction language by default rather than offering an opt-in or alternative.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file is entirely written as mandatory operational guidance in Chinese and uses prescriptive language such as '严格按编号顺序问' and '必须显式指出', which effectively constrains the interaction language and format. There is no indication that the user may choose another language or that the Chinese-only requirement is justified by a region-specific purpose.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The line specifies acceptable length only for Chinese or English deliverables, which implicitly constrains output to those languages. The document does not state that users may choose another language or opt in to this locale restriction, so it presents a natural-language locale policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This markdown file is entirely written as normative instructional material in Chinese and presents the case study and recommended agent behavior without any indication that users may choose another language. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale constraint is explicitly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

The file presents the English version as the active/readable variant via a hard language selection link, and the content itself is entirely language-specific. Under the policy, forcing a specific language without user opt-in can be a natural-language policy concern unless the locale constraint is clearly justified or optionality is offered in-context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

This markdown file is primarily written in Simplified Chinese, with English offered only as an alternate link. That can be a language/locale policy issue because the skill content defaults to a specific language without stating that the user may choose their preferred language or that the locale constraint is required for the skill's purpose.

Content

No source excerpt is available for this finding.