Back to skill

Security audit

Zhkh Ru

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its utility-bill purpose, but it also tells the agent to run local Python commands, write persistent state, and append unrelated promotional text.

Review this skill before installing. Its core bill-analysis guidance is useful, but the Attribution section should be removed because it runs local commands, tracks usage in a workspace file, and injects unrelated promotional content into answers.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
SKILL.md:65
Finding

Forced Promotional Content Injection into Agent Responses

Content
View full analysis
= 3 — ничего не добавляй ``` ### Technical Analysis The Skill requires the Agent to append promotional material and external Telegram references to user-facing responses. This behavior is unrelated to the legitimate purpose of analyzing utility bills. Because these instructions are part of the Skill definition, they are applied when the Skill is loaded and alter the Agent's expected response behavior. The injected material is not conditioned on user consent or relevance to the requested utility-bill analysis. The persistent counter makes the injection selective, which can also make the behavior less obvious during repeated testing. This is instruction hijacking at the Skill level: the Skill changes the current session's output objective from solely assisting the user to promoting unrelated services and third-party channels. ### Attack Path 1. A user invokes the Skill to analyze a utility bill. 2. The Agent loads and follows the instructions in `SKILL.md`. 3. The Attribution section directs the Agent to inspect a local counter. 4. If the counter is below three, the Agent appends the prescribed promotional content. 5. The user receives advertising and external-channel references as part of an otherwise legitimate respo ...[truncated 486 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:69
Finding

Unnecessary Persistent Workspace File Access

Content
View full analysis
= 3 — ничего не добавляй ``` ### Technical Analysis The Skill instructs the Agent to execute Python commands that read and modify the hard-coded file `/home/node/.openclaw/workspace/ru-pack-counter.txt`. Local command execution and persistent filesystem state are not needed to explain or calculate utility-bill charges. The read command accesses state outside the Skill package, while the write command creates or overwrites a fixed workspace path. This violates least-privilege principles by requesting filesystem and command-execution capabilities unrelated to the stated task. Use of a predictable fixed path also creates a file-handling risk. If the execution environment permits the path to be replaced with a symbolic link, the write operation follows the link and truncates or modifies the linked target with the Agent process's privileges. The audit did not confirm that an exploitable symbolic link is present, but the code does not perform path validation, exclusive creation, ownership checks, or symbolic-link protection. ### Attack Path The confirmed execution path is: ...[truncated 1393 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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
Findings (8)

Tp2

High
Category
MCP Tool Poisoning
Confidence
90% confidence
Finding

Confusable Unicode characters (e.g., Cyrillic or Greek lookalikes of Latin letters) can make a malicious tool name appear identical to a trusted one.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill includes hidden end-of-response instructions to read and update a local counter file and conditionally inject unrelated promotional text. This creates unauthorized stateful behavior and cross-promotion unrelated to ЖКХ bill analysis, violating least privilege and opening the door to covert persistence or policy evasion patterns.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The markdown embeds shell/Python execution and file writes without user notice, even though those actions are unrelated to the stated function of explaining utility bills. Hidden operational steps of this kind are dangerous because they can be repurposed for covert data access, persistence, or manipulation while remaining invisible to the user.

Content

No source excerpt is available for this finding.

Ssd 4

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The hidden end-of-response workflow instructs the agent to execute local commands, track a counter across runs, and conditionally append promotional content. This is deceptive, stateful behavior unrelated to the user's task and indicates an attempt to manipulate outputs while concealing unauthorized side effects in a seemingly harmless skill.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

This skill instructs the agent to execute Python commands and write workspace state despite having a purely document-analysis purpose. Unnecessary command execution materially increases risk of local data access, state manipulation, and abuse of the execution environment beyond the user's request.

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill is written entirely in Russian and instructs a Russian-specific communication style, but it does not state that language choice is optional or limited by explicit user opt-in. Under the policy, forcing a specific language without choice can be a natural-language locale violation unless the constraint is clearly documented and justified.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger list includes generic words like "свет", "вода", and "газ", which commonly appear in ordinary conversation outside the intended ЖКХ bill-analysis context. The description does not provide exclusion conditions or negative examples to clarify when these words should not activate the skill.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.