Back to skill

Security audit

Proof-of-Quality - BTC PoW Verifiable Excellence

Security checks for vulnerabilities and agentic risk

Overview

This skill is not malware, but its advertised quality proof is weak and misleading, and its cron guidance could cause unnecessary recurring CPU work.

Install only if you understand this as a toy or advisory local script, not a trustworthy quality or security gate. Do not use its PoQ output for approving skills, forks, or collaborators without independent review, and do not schedule it with cron unless you define exact targets and CPU/time limits.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
poq.js:7
Finding

Forgeable and Replayable Proof-of-Quality Result

Content
View full analysis
10 && skillContent.includes('PoW') ? 98 : 80; return quality; } function powQuality(score, difficulty = 4) { let nonce = 0; while (true) { const hashInput = score + nonce; const hash = crypto.createHash('sha256').update(hashInput).digest('hex'); if (hash.startsWith('0'.repeat(difficulty))) return { hash, nonce, score }; nonce++; } } ``` ### Technical Analysis The benchmark does not execute a test suite or measure the claimed speed, accuracy, or security properties. It assigns a score of `98` solely when the input contains more than ten lines and includes the literal string `PoW`; all other inputs receive `80`. The generated proof hashes only the concatenated score and nonce: ```js const hashInput = score + nonce; ``` It does not bind the proof to the evaluated file contents, a cryptographic digest of the skill package, the benchmark evidence, the threshold, or the evaluator version. Therefore, all inputs receiving the same score share an identical proof search space. A previously generated proof can be reused for a different skill or after the evaluated skill has been modified. This behavior conflicts with the verification and security-benchmarking claims in `SKILL.md`, because the implementation neither performs the documented security evaluation nor supplies enough data to verify that a proof belongs to a specific artifact. ### Attack Path 1. An attacker creates an unsafe or low-quality skill containing more than ten lines. 2. The attacker inserts the literal text `PoW` anywhere in the input. 3. The attacker invokes `node poq.js 95`. 4. The superficial benchmark assigns the skill a score of `98`. 5. The script searc ...[truncated 962 chars]
Remediation
View remediation
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 (3)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill description and frontmatter present broad, open-ended use cases such as skill evaluation, fork scoring, and collaboration verification without defining trusted inputs, resource limits, or approval boundaries. In an agent setting, ambiguous invocation guidance can cause the skill to be run automatically on arbitrary targets, leading to unnecessary compute consumption and unsafe decision-making based on an unauthenticated 'proof-of-quality' signal.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The manifest describes a proof-of-quality mechanism for skill evaluation and verifiable benchmarking, implying a substantive quality assessment workflow. In practice, the code only counts lines, checks whether the file contains the string 'PoW', and then performs proof-of-work over that simplistic score, which does not meaningfully implement the claimed evaluation or verification purpose.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The instruction to run the skill on a cron schedule every 6 hours is operationally vague and lacks activation constraints, target scoping, and compute safeguards. Because the workflow includes nonce grinding, periodic automatic execution could create avoidable denial-of-service or cost-amplification conditions, especially if applied broadly across many skills or untrusted repositories.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.