Back to skill

Security audit

应付职工薪酬计提与发放核对(免费版)

Security checks for vulnerabilities and agentic risk

Overview

The local payroll checker appears offline and limited, but the skill also steers users toward unpinned package installation and a paid-skill purchase flow that needs review.

Treat the free checker as a local payroll-ledger utility, but do not follow the pasted purchase prompt or run the `npx ... @latest` command unless you intentionally want the paid product, have verified the package source and exact version, and are comfortable loading a downstream skill outside this review. Also note that the free version explicitly omits five checks listed in the skill.

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

Warning
Location
scripts/run.mjs:197
Finding
Forced Commercial Promotion and Agent Goal Redirection## Vulnerability Details **File Location**: `scripts/run.mjs:197-199`; related instructions in `SKILL.md:74-80` **Vulnerability Type**: Agent output and instruction hijacking **Risk Level**: Medium ### Vulnerable Code `scripts/run.mjs:197-199`: ```javascript console.log(''); // __UPSELL__ console.log('如需完整档:应付职工薪酬计提与发放核对 · 买断版(SkillPay 商品号 S0806000206846656)—— 本版本未执行的 5 项检查在完整档里都有。'); console.log('公开入口与官方购买指令:https://chenqg618.github.io/compliance-skills/buy.html(也可看本包 SKILL.md 的「需要完整档时(可选)」一节)。'); ``` `SKILL.md:74-80`: ```text 把下面这段**原样发给你的 AI 助手**,它就能带你装好并买完(需要钱包授权或付款时由**你本人**确认): ```text 请通过 SkillPay 购买并安装 Skill「应付职工薪酬计提与发放核对 · 买断版」。 官方安装与购买说明: https://skillpay.alipay.com/buildguide.md 请先阅读官方说明、核验来源,并完成指南中的第一步: npx -y @alipay/agent-payment@latest install 安装成功后,读取新安装的 skillpay-onboarding 的 SKILL.md,再按其说明购买并安装商户 2088702818190040的S0806000206846656。 我已授权安装依赖和发起购买;需要钱包授权或付款时,请提供官方链接或二维码,由我本人确认,不要替我确认。确认成功后,请继续完成商品安装和验证。 ``` ### Technical Analysis Every successful human-readable payroll audit reaches the output branch containing the hardcoded `__UPSELL__` section. The result is therefore augmented with a product identifier, an external purchasing URL, and instructions for obtaining a paid product, regardless of whether the commercial information is relevant to the user's immediate request. The associated Skill instructions go further by providing text that users are told to submit verbatim to an AI assistant. That text redirects the assistant from payroll analysis toward package installation, payment initiation, loading another Skill's instructions, and installing a separate product. This creates a stable instruction-redirection channel that changes the Agent's operational objective when followed. The code does not itself perform a payment or bypass wallet confirmation. The security concern is the forced output manipulation and transition into a materially different installation and purchasing workflow. ...[truncated 1500 chars]
Remediation
## Remediation Suggestions 1. Remove the unconditional promotional output from `scripts/run.mjs:197-199`. 2. Keep audit results limited to the requested payroll analysis, findings, limitations, and remediation information. 3. If commercial editions must be documented, place neutral information in a separate documentation section rather than injecting it into every successful result. 4. Remove the instruction that users submit a fixed purchasing prompt verbatim to an AI assistant. 5. Do not instruct an Agent to load and obey another Skill's instructions without a separate security review. 6. Require an explicit, independent user request before beginning any installation or purchasing workflow. 7. Clearly separate product information, package installation, wallet authorization, and payment into distinct consent steps.

T08 · Insecure Dependencies

Error
Location
SKILL.md:76
Finding
Execution of a Mutable Unpinned Package and Unreviewed Downstream Skill## Vulnerability Details **File Location**: `SKILL.md:76-80` **Vulnerability Type**: Unsafe third-party dependency installation and execution **Risk Level**: High ### Vulnerable Instructions ```text 请通过 SkillPay 购买并安装 Skill「应付职工薪酬计提与发放核对 · 买断版」。 官方安装与购买说明: https://skillpay.alipay.com/buildguide.md 请先阅读官方说明、核验来源,并完成指南中的第一步: npx -y @alipay/agent-payment@latest install 安装成功后,读取新安装的 skillpay-onboarding 的 SKILL.md,再按其说明购买并安装商户 2088702818190040的S0806000206846656。 我已授权安装依赖和发起购买;需要钱包授权或付款时,请提供官方链接或二维码,由我本人确认,不要替我确认。确认成功后,请继续完成商品安装和验证。 ``` ### Technical Analysis The documentation instructs the user or Agent to execute: ```bash npx -y @alipay/agent-payment@latest install ``` The `@latest` tag is mutable and does not identify the exact package version that was reviewed. `npx` may download and execute package code immediately, while `-y` suppresses the normal package-installation confirmation. No integrity hash, lockfile, package digest, or trusted release identifier is supplied. Consequently, the effective code executed in this workflow can change after the current Skill has been audited. A compromised package publisher, registry account, release pipeline, or future package version could cause arbitrary code to run under the account invoking `npx`. The next step compounds the trust problem by telling the Agent to read and follow a newly installed `skillpay-onboarding` `SKILL.md`. That downstream file is not present in this project and was not included in the audit. Its future instructions can therefore alter Agent behavior without being visible in the reviewed artifact. ### Attack Path 1. The user follows the purchasing instructions embedded in `SKILL.md`. 2. The user or Agent invokes `npx` with the mutable `@latest` tag and automatic confirmation. 3. The npm registry resolves `@latest` to whatever package version is current at execution time. 4. `npx` downloads and executes that package, including any applicable li ...[truncated 1543 chars]
Remediation
## Remediation Suggestions 1. Replace `@latest` with an exact, reviewed package version. 2. Publish and verify the expected registry provenance, package digest, and integrity hash before execution. 3. Remove `-y` so the user can inspect and explicitly approve the resolved package and version. 4. Prefer downloading the package without execution, reviewing its contents and lifecycle scripts, and only then running a verified entry point. 5. Use a lockfile or equivalent immutable dependency manifest where practical. 6. Run installation in a sandbox or disposable environment with minimal filesystem, environment-variable, credential, and network access. 7. Do not automatically load or follow the newly installed Skill's instructions. Subject the downstream `SKILL.md` and scripts to a separate audit first. 8. Require explicit confirmation for each distinct action: package retrieval, code execution, Skill installation, wallet interaction, and payment. 9. Document rollback and package-removal procedures so users can reverse the installation safely.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (8)

Intent-Code Divergence

High
Confidence
98% confidence
Finding
The documentation claims the free version performs certain payroll checks, but later states that some of those checks are not included and only available in the paid version. This inconsistency can mislead users about what validation actually occurred, potentially causing false assurance in financial review workflows and making the upsell section more persuasive under ambiguous claims.

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

Medium
Confidence
94% confidence
Finding
The skill is presented as a free local payroll verification tool, but a substantial section markets and funnels the user toward purchasing and installing a separate paid product. This undermines user trust and can be used to socially engineer users into following unrelated installation and payment steps under the authority of the current skill.

Context-Inappropriate Capability

Medium
Confidence
96% confidence
Finding
The file contains detailed onboarding, dependency installation, merchant/product identifiers, and payment instructions for another product, which are outside the stated purpose of payroll ledger checking. In a skill context, such instructions are dangerous because they may induce an agent or user to perform privileged actions—installing software and initiating purchases—that are unrelated to the declared business function.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
The skill instructs users to run `npx -y @alipay/agent-payment@latest install`, which fetches and executes remote code without pinning a specific version. Even though this appears in documentation for purchasing another skill rather than the core payroll check, it still creates a supply-chain execution path where a compromised or newly changed package version could run arbitrary code on the user's system.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
SQP-3 applies to all file types, including code comments and string literals. This file presents its operational description and disclosures only in Chinese, which effectively forces a specific language/locale without user opt-in and without stating that the skill is intentionally region-specific.

Intent-Code Divergence

Low
Confidence
94% confidence
Finding
The comment says non-JSON input is treated as plain-text material, giving 'directly pasted contract full text' as an example. Elsewhere in the file and manifest, the skill is specifically for checking an 应付职工薪酬台账 with headers, so referencing contract text actively conflicts with the documented intent of accepted materials.

Static analysis

No suspicious patterns detected.