Back to skill

Security audit

Salary Research

Security checks for vulnerabilities and agentic risk

Overview

This salary skill is mostly coherent, but it exposes internal compensation-data upload, full-query, and report workflows without enough scoping or safeguards.

Review carefully before installing. Use it only with authorized compensation data, avoid query-all or report exports unless the sharing audience is approved, and verify that the salary-natural executable comes from a trusted, pinned installation path.

Vulnerability Patterns
  • Tool Hijacking and SpoofingModifies or replaces tools so legitimate-looking calls execute attacker logic
  • 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)

T07 · Tool Hijacking and Spoofing

Warning
Location
run.sh:7
Finding

Unverified PATH-Resolved Executable Allows Tool Hijacking

Content
View full analysis
/dev/null; then echo "错误:salary-natural 命令未找到" echo "请先安装:cd /Users/claw/.openclaw/workspace-ideacat/hr-skills/salary-research && npm link" exit 1 fi # 执行 salary-natural 命令,传递所有参数 salary-natural "$@" ``` ### Technical Analysis The script locates and executes `salary-natural` using the process's `PATH`. Although `command -v` checks that an executable with this name is available, it does not establish that the resolved executable is the intended or trusted implementation. The subsequent invocation performs the same uncontrolled name-based resolution. An attacker who can place a malicious executable named `salary-natural` in a directory that appears earlier in `PATH` can make the script execute attacker-controlled code. The external `salary-natural` implementation is not included in the audited project. Consequently, its provenance, integrity, version, network behavior, and handling of salary queries or sensitive enterprise data cannot be verified from this package. ### Attack Path 1. An attacker creates a malicious executable named `salary-natural`. 2. The attacker places it in a writable directory, such as a compromised user binary directory or working-directory-related path entry. 3. That directory is placed before the legitimate installation directory in the victim's `PATH`. 4. The victim or an agent invokes `run.sh`. 5. `command -v salary-natural` finds the attacker's executable and treats it as valid. 6. The final `salary-natural "$@"` statement executes the malicious program with the invoking user's permissions and forwards all supplied arguments to it. 7. The malicious executable can perform arbitrary actions available to that user while presenting itself as the expected salary-research t ...[truncated 794 chars]
Remediation
View remediation
&2 exit 1 fi # Optionally verify a pinned checksum or signature here. exec "$SALARY_NATURAL" "$@" ``` ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill states it can call public recruitment APIs or scrape data and also supports enterprise data management, but it does not warn users about privacy, data provenance, or operational impact. In this context, missing warnings can lead users to input confidential salary records or rely on scraping behavior without understanding compliance, legal, or system-side consequences.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger conditions include broad everyday phrases such as '查一下', '查询', and '看看', combined with common salary-related wording, which raises the likelihood of accidental invocation. Overbroad auto-triggering is risky here because the skill can perform external data access and may also expose internal enterprise data paths, so a benign conversational request could invoke sensitive or unintended operations.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest and top-level description present the skill as a salary query/reporting assistant, but the documentation additionally exposes enterprise data template download, upload, query, and report generation workflows. This scope mismatch is dangerous because it can cause users, reviewers, or policy systems to underestimate that the skill processes internal compensation data, increasing the chance of unauthorized ingestion, storage, or export of sensitive information.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The enterprise workflow includes uploading salary files, querying all records, and generating reports, yet there are no explicit cautions about sensitive-data exposure through write, export, or sharing operations. Because compensation data is highly sensitive HR information, silent support for upload and broad export/report features materially increases the risk of internal data leakage, oversharing, and improper downstream distribution.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

名称与描述、触发词和示例均限定为中文语境,且文档未说明是否支持其他语言或允许用户选择语言。根据语言/地区策略,强制单一语言而无显式 opt-in 可能构成自然语言策略问题。

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.