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## 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 ``` ``` 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
## 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
Content
**Agent 的第一反应错误示范**:立即输出完整架构图、开始写 PRD、提供技术栈建议。

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

---
Confidence
75% confidence
Finding
Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Context Leakage

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

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

---
Confidence
75% confidence
Finding
Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Context Leakage

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

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

---
Confidence
75% confidence
Finding
Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Context Leakage

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

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

---
Confidence
75% confidence
Finding
Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Context Leakage

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

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

---
Confidence
75% confidence
Finding
Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Context Leakage

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

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

---
Confidence
75% confidence
Finding
Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Context Leakage

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

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

---
Confidence
75% confidence
Finding
Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

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.

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.

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.

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.

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.

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.

External Transmission

Medium
Category
Data Exfiltration
Content
## ⭐ 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)

---
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
## ⭐ 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)

---
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Natural-Language Policy Violations

Medium
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.

Natural-Language Policy Violations

Medium
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.

Natural-Language Policy Violations

Medium
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.

Natural-Language Policy Violations

Medium
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.

Natural-Language Policy Violations

Low
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.

Natural-Language Policy Violations

Low
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.

Static analysis

No suspicious patterns detected.