T01 · Skill Instruction Hijacking
- Location
SKILL.md:285- Finding
Skill Instructions Mandate Unconditional Transfer of Sensitive Payroll Data
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This payroll-audit skill has real audit functionality, but it also mandates cloud delivery of sensitive payroll outputs and ships generated payroll artifacts and Feishu links, so it requires careful review before installation.
Review before installing. Do not use this skill with real payroll data unless generated sample outputs and cloud links are removed, Feishu delivery is made explicit opt-in with destination and recipient confirmation, lark-cli execution is changed to safe argument-based subprocess calls, and HTML/report output escapes all payroll-derived fields.
SKILL.md:285Skill Instructions Mandate Unconditional Transfer of Sensitive Payroll Data
scripts/deliver_to_feishu.py:29Arbitrary Shell Command Execution Through User-Controlled Output Paths
scripts/generate_report_v6.py:554Stored Cross-Site Scripting in Generated Payroll Reports and Interactive Dashboards
| 工号 | 姓名 | 异常值 | 预期值 | 详情 |
|---|---|---|---|---|
| {emp_id} | {emp_name} | {val} | {expected} | {detail_link} |
| ${empId} | ${empName} | ${val} | ${expected} | ${note} |
_delivery/01_audit_result.json:1Employee-Level Payroll Artifacts and Live Cloud References Included in the Distributed Package
The skill claims to perform payroll auditing but also documents uploading local files to Feishu, invoking external CLI tooling, creating online documents, and generating outbound delivery artifacts. In a payroll setting, undisclosed remote-transfer capability is highly sensitive because it can exfiltrate salary data, reports, and employee identifiers to third-party systems.
The skill claims to perform payroll auditing but also documents uploading local files to Feishu, invoking external CLI tooling, creating online documents, and generating outbound delivery artifacts. In a payroll setting, undisclosed remote-transfer capability is highly sensitive because it can exfiltrate salary data, reports, and employee identifiers to third-party systems.
The skill claims to perform payroll auditing but also documents uploading local files to Feishu, invoking external CLI tooling, creating online documents, and generating outbound delivery artifacts. In a payroll setting, undisclosed remote-transfer capability is highly sensitive because it can exfiltrate salary data, reports, and employee identifiers to third-party systems.
The skill claims to perform payroll auditing but also documents uploading local files to Feishu, invoking external CLI tooling, creating online documents, and generating outbound delivery artifacts. In a payroll setting, undisclosed remote-transfer capability is highly sensitive because it can exfiltrate salary data, reports, and employee identifiers to third-party systems.
The skill claims to perform payroll auditing but also documents uploading local files to Feishu, invoking external CLI tooling, creating online documents, and generating outbound delivery artifacts. In a payroll setting, undisclosed remote-transfer capability is highly sensitive because it can exfiltrate salary data, reports, and employee identifiers to third-party systems.
The skill claims to perform payroll auditing but also documents uploading local files to Feishu, invoking external CLI tooling, creating online documents, and generating outbound delivery artifacts. In a payroll setting, undisclosed remote-transfer capability is highly sensitive because it can exfiltrate salary data, reports, and employee identifiers to third-party systems.
The skill claims to perform payroll auditing but also documents uploading local files to Feishu, invoking external CLI tooling, creating online documents, and generating outbound delivery artifacts. In a payroll setting, undisclosed remote-transfer capability is highly sensitive because it can exfiltrate salary data, reports, and employee identifiers to third-party systems.
The skill claims to perform payroll auditing but also documents uploading local files to Feishu, invoking external CLI tooling, creating online documents, and generating outbound delivery artifacts. In a payroll setting, undisclosed remote-transfer capability is highly sensitive because it can exfiltrate salary data, reports, and employee identifiers to third-party systems.
The skill claims to perform payroll auditing but also documents uploading local files to Feishu, invoking external CLI tooling, creating online documents, and generating outbound delivery artifacts. In a payroll setting, undisclosed remote-transfer capability is highly sensitive because it can exfiltrate salary data, reports, and employee identifiers to third-party systems.
Referenced artifact was not completely inspected
| 第七步:审核清单看板 | `generate_kanban.py` / `generate_kanban_v6.py` | 静态看板(v5)/ 动态交互看板(v6) |
Referenced artifact was not completely inspected
| 第七步:审核清单看板 | `generate_kanban.py` / `generate_kanban_v6.py` | 静态看板(v5)/ 动态交互看板(v6) |
The skill includes remote collaboration capability to upload files to Feishu cloud storage and create Feishu documents, but that capability is not justified by the core need to audit payroll data. Because payroll artifacts contain sensitive personal and financial information, unnecessary remote transfer materially raises the risk of data exfiltration, oversharing, and regulatory noncompliance.
The documentation states that red-line findings must block later steps and prevent report generation, yet elsewhere says the full pipeline always generates all outputs and mandates delivery afterward. In a payroll workflow, this contradiction is dangerous because severe anomalies may still propagate into reports and external delivery, leaking or legitimizing incorrect salary data despite the supposed safety gate.
The skill instructs automatic upload of audit files and Feishu delivery without a clear user-facing warning that the payload may contain sensitive payroll information, including employee identifiers and compensation data. In this context, silent or under-warned transmission of payroll artifacts is especially dangerous because it can violate confidentiality obligations and cause large-scale privacy exposure.
This script has a capability boundary issue: it does more than analyze payroll data by invoking an external CLI to upload files and create remote documents. In the context of a payroll audit skill, that remote-write capability is especially sensitive because it can transfer confidential audit outputs outside the local environment without strong guardrails.
This is a concrete tool-parameter abuse risk because shell=True delegates parsing to the shell while the command string is dynamically assembled elsewhere in the file. If an attacker can influence filenames, directory names, or other interpolated values, they may inject additional shell syntax and execute unintended commands under the privileges of the audit process.
def run_cmd(cmd: str, cwd: str = None) -> dict:
"""Run a shell command and return {ok, stdout, stderr}"""
result = subprocess.run(
cmd, shell=True, cwd=cwd,
capture_output=True, text=True, timeout=120
)
SQP-3 applies to all file types and covers natural-language policy violations such as forcing a specific language without user opt-in. This file presents all headings, labels, and conclusions in Chinese only, with no indication that the user can choose another language or that the report is intentionally region-specific.
The skill documents shell execution plus file read/write behavior but declares no explicit tool scope or permission boundaries. In a payroll context, that creates unnecessary ambiguity about what the agent may access or modify, increasing the risk of over-broad file access or command execution against sensitive HR data.
The manifest and instructions rely heavily on Chinese-language triggers and require the user to reply with the specific phrase '确认无误' to proceed. Without stating that equivalent confirmations in other languages are accepted, this can amount to an implicit language constraint rather than an opt-in locale choice.
The skill explicitly frames itself as a payroll-audit system yet makes Feishu delivery a required operational step. In a payroll context, forcing external delivery expands handling of highly sensitive employee compensation data beyond the minimum necessary function and can cause unintended disclosure or compliance violations.
The JSON reports large blue-line trigger counts and detailed affected records, but the embedded judgment metadata simultaneously says triggered=0 and verdict='通过'. In a payroll-audit skill, this kind of contradictory result data can suppress or misrepresent anomalies, causing downstream agents or reviewers to treat materially abnormal payroll changes as cleared when they are not.
The report footer states 'payroll-data-audit v5.1' while the skill metadata claims v7.2 and the page header shows rule version 7.0.0, creating materially inconsistent provenance for a payroll audit artifact. In a payroll/compliance workflow, version mismatch can mislead reviewers about which rules and fixes were applied, undermine traceability, and cause approval decisions to rely on an outdated or misrepresented audit basis.
This markdown file contains user-facing natural-language content exclusively in Chinese, from the title through all report sections. Under the policy criteria, forcing a specific language without user opt-in or a documented justification is a locale-policy violation.
The document declares lang="zh-CN", which explicitly fixes the report to a specific language/locale. Under the policy, forcing a locale without user opt-in or a documented region-specific justification is a natural-language policy violation.
The report explicitly states '禁止出报告' while simultaneously existing as a generated deliverable, which creates a dangerous integrity failure in a payroll-control workflow. In this skill context, the contradiction is more severe because payroll audit reports are decision artifacts; a blocked report being emitted anyway can cause unauthorized payroll release or false sign-off.
No suspicious patterns detected.