Back to skill

Security audit

发票与单据合规技能包(免费版)

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed local document-compliance checker that reads user-provided materials and runs bundled checks without network access, persistence, credential use, or file writes.

Installers should treat this as a local precheck tool, not a legal, tax, audit, or invoice-authenticity authority. It may be useful for finding arithmetic, consistency, and wording issues in prepared text materials, but users should read the not-run and out-of-scope sections carefully and avoid relying on a clean result as approval to sign, pay, file taxes, or publish regulated content.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • 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 (48)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding
核心大方向基本一致:该代码确实是在本地离线环境下,对材料进行多项单据/合规检查,不使用网络,也不需要 API Key。从资源访问和安全边界看,与声明大体相符。 但存在实质性描述偏差。最明显的是,代码注释明确写明“本文件是免费档子集:只实现免费检查项;完整档(付费)的实现不在这个包里”,并通过 CHECKS_WITHHELD 暴露多项未执行能力。这说明该代码并不是声明所描述的完整能力包。其次,声明强调“每份材料一行结论”,而实际 run() 返回的是非常详细的结构化对象:每份材料的 checks、findings、not_run、severity 统计、总 summary、scope 等,远超“一行结论”的描述。再者,代码还实施了两个壳层附加检查(材料覆盖不足、分段标题缺失),这属于声明未列出的额外检查行为。 因此,虽然用途领域相近,且离线/无网络等基础属性匹配,但“能力范围与产出形式”与声明不完全一致,属于描述与行为不完全相符,建议判定为 mismatch。

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
存在明显的描述与行为不一致。代码文件名、注释、规则集和 run() 行为都表明其唯一主要用途是“广告文案违规体检(免费档)本地引擎)”。它明确说明“不吃表格”,输入就是一段广告文案,并围绕《广告法》进行关键词/正则与豁免判定。相比之下,声明描述的是一个针对发票、合同、报销、采购、外贸等 14 类业务单据的本地合规核查工具,属于完全不同的业务域与处理对象。二者唯一一致点只有“本地运行、不联网”这一资源使用特征,但这不足以弥补核心功能、输入类型、检查范围和输出形式的重大偏差。因此应判定为严重不匹配。

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
该代码与声明存在明显的描述-行为不一致。声明描述的是一个覆盖 14 类业务单据/材料的综合合规审核工具,涉及发票、合同、中标、投标、出口退税、报销、采购三单匹配、外贸单证等多个领域,并承诺逐份材料输出结论且附原文文件与行号。实际代码却是单一模块 ad-compliance.js,且注释和常量都明确说明“免费档只做两项检查,别无其他”,核心能力仅为识别广告文案中的绝对化用语,并依据《广告绝对化用语执法指南》做豁免判定。代码没有任何针对发票、合同、报销、采购或外贸单证的一致性比对逻辑,也没有文件解析、逐材料行号定位等能力。虽然“本地运行、无网络请求”这一点与声明一致,但这只是部分环境特征一致,不能弥补主要用途和功能范围上的巨大差异。因此应判定为明显不匹配。

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
这是明显的描述与行为不符。声明把技能描述为一个覆盖 14 项单据/合同/广告/外贸等场景的综合合规检查工具;但给出的代码只实现了其中一项“农产品收购发票与进项抵扣”的部分检查,而且还是免费档子集。代码中 CHECKS_GIVEN 仅 6 项,CHECKS_WITHHELD 明确列出未执行检查,OUT_OF_SCOPE 进一步限制了能力边界。尽管“本地运行、不联网、无需 API Key”这一点与代码一致,但核心能力范围被严重夸大,因此应判定为 mismatch。

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
代码与描述在“是否联网”这一点上是一致的:代码确实纯本地、未调用网络或API。但核心能力范围明显不符。描述宣称支持14类单据合规检查的完整能力,而该代码块仅针对“应付暂估与发票未到”场景,且还是该场景中的部分检查项。代码中通过CHECKS_GIVEN/CHECKS_WITHHELD明确区分了已实现与未实现能力,说明并非完整实现。输出形式也与描述不一致:它返回结构化校验结果和多条异常发现,而不是对每份材料给出一行带原文文件与行号的总结性结论。因此这是明显的描述-行为不匹配。

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
这是明显的描述与行为不符。代码文件名、注释、service_type、输入格式和检查逻辑都表明其唯一目的,是对“中标通知书 vs 合同草案”的结构化对照表做一致性比对。它甚至在注释中明确说明是“免费档子集”,并列出未执行的检查项。相比之下,声明把技能描述为一个覆盖 14 大类材料审查的通用合规核查器,还暗示可对逐份材料输出结论并带原文文件与行号。实际代码既没有这些广泛能力,也没有对原始文档进行解析,更没有多文件逐份处理机制。离线、本地运行、无联网这一点与声明一致,但核心能力范围被大幅夸大,因此应判定为 mismatch。

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
该代码与声明存在明显的功能范围不一致。声明描述的是一个覆盖 14 类业务场景的综合单据合规审核工具;而实际代码文件 quote-audit.js 是一个非常聚焦的本地报价审核引擎,仅处理报价表文本或结构化 items,执行数量×单价与合价是否一致、以及字段缺失检查。代码中还明确列出 CHECKS_GIVEN 只有“分项算术校验”“缺漏项提示”,并通过 CHECKS_WITHHELD 说明多项检查未实现。资源使用方面,“本地运行、不联网”与声明基本一致,但这不足以弥补核心用途和能力范围的巨大差异。因此应判定为描述与实际行为不匹配。

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding
该代码与声明存在明显的描述-行为不一致。代码文件名、注释、常量 CHECKS_GIVEN/CHECKS_WITHHELD 以及 run/analyze 的实现都表明,它是一个专用于“多份合同条款横向比对”的本地引擎,只检查条款切分对齐、缺条、多条款版本差异和对照表生成。虽然这与声明中的 14 项之一“多份合同条款差异”相关,但声明将技能描述为一个覆盖 14 类不同审计任务的综合合规检查器,而提供的代码并未实现其余绝大多数能力。另一方面,代码确实符合“本地运行、不联网”的部分描述,也没有发现额外越权能力;问题在于主功能范围被严重夸大,因此应判定为 mismatch。

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
这是明显的描述与行为不符。代码注释和实现都明确表明它是“contract-consistency-check/contract-consistency.js”,且‘免费档只做六项检查,别无其他’,还列出了未实现的检查项。它没有任何针对发票、报销、广告、出口退税、采购三单匹配或外贸单证一致性的逻辑,也没有多文件/逐份材料编排能力。与声明一致的部分主要只有‘本地运行、不联网、输出带行号证据’。因此属于核心能力被严重夸大、主要用途 materially different 的 mismatch。

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding
该代码与声明在主目的和能力范围上存在明显不一致。代码注释和实现都表明它是“报销单合规预检(报销单 + 发票)本地引擎”,而不是覆盖14类单据审查的通用合规系统。实际 analyze() 只调用了 checkDuplicateInvoice、checkInvoiceCompleteness、checkPlaceholders 三个函数;许多更深入的报销检查项仅出现在 CHECKS_WITHHELD 中,未被实现,更不用说声明中的其他13类场景。资源访问方面,代码确实本地运行、未见网络请求,这一点与声明一致;但核心功能描述显著夸大,因此应判定为描述与行为不匹配。

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
描述把技能包装为覆盖 14 项单据合规检查的完整本地核查工具,但这段代码的实际功能范围明显更窄:它只处理“出口退税申报单证一致性核对”这一项,且还是免费档子集。代码顶部和结果 note/disclaimer 都明确说明仅执行 6 项检查,另有 5 项未执行,且许多税务判断被排除在范围外。因此,代码的主目的与声明的广泛能力不一致,属于明显的能力夸大。另一方面,关于“本地运行、不联网、无需 API Key”与代码行为是一致的,因此不一致点主要在功能覆盖面与输出承诺上。

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
该描述与代码存在明显的范围和能力不一致。代码文件名、常量和注释都表明它只是“invoice-usage-stock-check”单一检查器,而且还是“免费档子集”,仅针对发票领用存台账执行有限的数值勾稽。它不处理用户声明中的其余13类检查事项,也不具备“逐份材料”“原文文件与行号”这类面向多文档审阅的能力。另一方面,描述中关于“完全本地运行、不需要联网/API Key”与代码行为是一致的,因此 mismatch 主要来自功能范围被严重夸大,而不是资源访问或权限问题。

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
该描述与代码存在明显且重大的能力不一致。代码文件名和实现内容都聚焦在 tax-invoice-void-check,即“发票作废与红冲核对”。它解析 payload.text 中的制表符/空格分隔台账,要求特定列存在,然后执行 6 个本地检查:净开票金额勾稽、红冲金额勾稽、合计行复核、重复发票号检测、空白/占位符检测、金额为负检测。代码顶部还明确写明这是“免费档子集”,完整档实现不在此包内,且 CHECKS_WITHHELD 只是未执行检查项说明。与声明相比,最核心的不符在于:声明承诺 14 项单据合规检查的完整能力,而本代码只实现其中一个小场景,且仍非完整实现。这不是普通实现细节差异,而是主能力范围大幅缩小。此外,声明提到“每份材料一行结论,结论都带原文文件与行号”,但代码仅对单个文本台账生成 findings,包含表格行号 line,不涉及文件名、原文引用或多材料逐份结论。另一方面,声明中的“完全本地运行、不需要联网、不需要 API Key”与代码行为是一致的:代码仅用 Node 标准库、无网络请求。因此应判定为描述显著夸大、与实际行为不匹配。

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
该代码块与声明存在明显的描述-行为不一致。安全与资源方面,代码确实是本地运行、未见联网、也不需要API Key,这部分与声明一致。但从核心能力看,声明描述的是一个覆盖14类单据合规检查的通用核查技能,而本代码仅实现了一个特定子模块 three-way-match(采购订单/入库单/发票)的基础比对功能。代码只做字段抽取与少量规则检查:跨单据字段一致性、重复发票号、模板占位符残留。它既没有实现其余13类检查,也没有实现三单匹配场景下注释中列出的多数检查项。输出形式上,代码返回 findings/summary/docCount 等结构化结果,而非‘每份材料一行结论’。因此其实际行为只能支撑一个非常有限的子能力,无法准确代表声明中的整体技能范围,应判定为不匹配。

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
代码与“完全本地运行、无需联网/API Key”这一点是一致的,因为只使用本地 Node.js 逻辑,未见网络访问。但核心能力上存在显著不符:该文件是单一模块 trade-doc-consistency.js,注释和实现都表明它仅针对外贸单证“单单一致”场景;且免费档入口 run() 只执行 checkCrossDocument 和 checkPlaceholders 两类检查。代码中还用 CHECKS_WITHHELD 明确列出多项不执行的检查。相比之下,声明描述的是一个覆盖14类单据合规检查的综合技能,范围远大于代码实际行为,因此属于明显的描述与行为不匹配。

Ae1

High
Category
analysis-evasion
Content
node scripts/run.mjs --sample # 单份材料样例(内置)
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/run.mjs --sample # 单份材料样例(内置)
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/run.mjs --sample # 单份材料样例(内置)
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/run.mjs --sample # 单份材料样例(内置)
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
This module materially under-delivers on the skill's advertised behavior: the skill metadata promises 14 document-compliance checks with per-document conclusions and original file/line references, but the implementation only performs one ad-copy absolute-terms check and returns snippet/context plus character offsets. In a compliance workflow, this can mislead users into believing a broader audit was completed, causing false assurance and missed legal or financial issues across the other 13 promised categories.

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
The file explicitly implements only a narrow bid-quote arithmetic audit while the skill metadata promises a much broader 14-item compliance pack spanning invoices, contracts, ads, reimbursements, procurement, and trade documents. In a compliance/security context, this mismatch can cause users to rely on the tool for controls it does not actually perform, producing dangerous false assurance and missed regulatory or fraud issues.

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
The skill metadata and file header create a strong expectation of broad compliance coverage, but this module only performs a small subset of checks. In a compliance/security workflow, that gap can cause users or downstream agents to over-trust clean results and miss fraud, duplicate reimbursement variants, or other non-implemented control failures.

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
The natural-language documentation throughout the file is entirely Chinese and frames the skill's contract, warnings, and usage only in that language. Under the policy, forcing a specific language without opt-in or a clearly documented region-specific justification is a locale-policy violation.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The skill dynamically requires and later runs 14 member engine modules from sibling paths, which is a code-execution behavior with safety implications similar to subprocess/plugin dispatch. Although the header documents no network, env, or file writes, it does not explicitly warn users that this wrapper will execute code from multiple other local engine modules on their supplied material.

Natural-Language Policy Violations

Medium
Confidence
93% confidence
Finding
The top-level description and user-facing behavior are written as a China-mainland ad-law compliance tool in Chinese, with no indication that users may choose another language or locale. This creates a natural-language locale constraint that is imposed by default rather than offered as an opt-in choice.

Static analysis

No suspicious patterns detected.