Back to skill

Security audit

Doc Consistency · U-King

Security checks for vulnerabilities and agentic risk

Overview

This is a local document-consistency checker with no observed network, persistence, or privilege behavior, but users should notice the built-in branding/contact footer and use a pinned installer when possible.

Install only from a source you trust, prefer a pinned or direct reviewed copy over the unpinned npx command, and use --json or review report output before sharing it externally if you do not want the included U-King URL/email footer in deliverables.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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 (2)

T01 · Skill Instruction Hijacking

Error
Location
scripts/lib/report.mjs:29
Finding

Unconditional Promotional Content Injection into Generated Reports

Content
View full analysis
${t.brand}`, '', ]; } ``` The injected Chinese and English footer values include an external brand, URL, email address, and solicitation for paid services: ```js footer1: '**本工具全程在本机运行,不联网、不上传、不调用任何模型。** 你的文档没有离开过这台机器。', footer2: '需要「改好的文件(原格式,不丢页眉页脚与自动编号)」、招标文件符合性矩阵、或跨全书的语义级术语归并?这几项需要人工介入:**HEFANGSHENG@gmail.com**', brand: 'doc-consistency · U-King https://u-king.org HEFANGSHENG@gmail.com', ``` ```js footer1: '**Runs entirely on your machine. No network, no upload, no model calls.** Your document never leaves this computer.', footer2: 'Need the corrected file with original formatting intact, an RFP compliance matrix, or semantic terminology reconciliation across a whole book? Those need a human in the loop: **HEFANGSHENG@gmail.com**', brand: 'doc-consistency · U-King https://u-king.org HEFANGSHENG@gmail.com', ``` ### Technical Analysis The declared functionality is offline document-consistency analysis. Adding third-party branding, a traffic-diversion URL, contact information, and a solicitation for commercial services is not necessary to inspect documents or communicate findings. The footer is not merely documentation metadata. It is inse ...[truncated 1910 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
README.md:21
Finding

Unpinned Remote Package Execution in Documented Installation Command

Content
View full analysis
Remediation
View remediation
...`, rather than resolving the latest release. 2. Publish and verify package-lock or integrity information where the installation workflow supports it. 3. Prefer the documented clone-and-run method for security-sensitive environments because the audited project itself uses only Node.js standard-library modules. 4. Use `npx --ignore-scripts` where compatible with the installer and clearly document any functionality that requires lifecycle scripts. 5. Document the exact package identity, publisher, expected version, and registry source so users can detect dependency confusion or package substitution. 6. Re-audit the installer whenever its pinned version changes. 7. Provide checksums or signed release artifacts for the Skill package and installation tooling. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (20)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/check.mjs <文件或目录…> [选项]

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/check.mjs <文件或目录…> [选项]

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/check.mjs <文件或目录…> [选项]

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/check.mjs <文件或目录…> [选项]

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/check.mjs <文件或目录…> [选项]

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/check.mjs <文件或目录…> [选项]

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · scripts/lib/read.mjs (reported line 87)May include surrounding context.

js
// ── md / txt ─────────────────────────────────────────────────────────────────
function readPlain(file) {
  let raw = readFileSync(file, 'utf8').replace(/^/, '');
  // Markdown 围栏代码块整体剔除,避免把示例代码当正文查
  raw = raw.replace(/^```[\s\S]*?^```/gm, ' CODEBLOCK ');

Ae3

High
Category
analysis-evasion
Confidence
90% confidence
Finding

Text artifact contains embedded NUL bytes

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.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The title and core operating instructions are written as mandatory Chinese guidance, and the skill later presents English only as an optional report mode via --lang zh|en. This creates a locale bias in natural-language behavior without explicitly offering the user a language choice up front.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The expression const zh = lang !== 'en'; makes Chinese the default for all cases except an explicit en value. This is a natural-language locale policy concern because it forces a language choice without clear user opt-in or a documented region-specific justification in this file.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
77% confidence
Finding

The policy flags natural-language locale constraints when a skill appears to force a specific language without user opt-in. This line presents a language limitation in natural language, but does not explicitly frame it as optional or justify the restriction as region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The line states 'Working languages: English and Chinese,' which is a natural-language locale constraint. Under the policy, forcing or limiting language support without offering a user choice or documenting a justified regional constraint can be a language/locale policy violation.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The manifest frames this skill as a fully offline, zero-dependency document consistency checker that performs local analysis only. The section directing users to email a person and visit an external website introduces escalation and external-service guidance that is not necessary for the stated skill purpose and is especially at odds with the strongly self-contained/offline positioning.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The entire skill content is presented exclusively in Chinese, and there is no indication that the user can choose another language or that the file is intentionally limited to a Chinese-only audience for a documented regional or compliance reason. Under the policy, forcing a specific language without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The natural-language usage text states --lang <zh|en> with 默认 zh, and the code also defaults lang to zh. This imposes a specific language by default rather than offering a neutral prompt or explicit user choice at first run.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

This file embeds natural-language output only in Chinese and English, and the comments describe language selection as choosing between those two sets. That can be a locale-policy concern if organizational policy requires not forcing a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
76% confidence
Finding

The file includes a Chinese-only comment alongside English comments, introducing a locale-specific instruction style without any documented language choice or justification. The policy requires avoiding forced language or locale constraints unless the user is offered a choice or the constraint is clearly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

This code file contains a natural-language comment that mixes English with Chinese ('规则一改就跑这个 —— 假阳性和漏报都会在这里现形。'). Under the policy, forcing or assuming a specific language without user opt-in can be a locale/language policy violation, and no justification or language choice is provided here.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.