Back to skill

Security audit

hugme

Security checks for vulnerabilities and agentic risk

Overview

This skill is not clearly malicious, but it automatically infers a user's emotional state, sends that label to an external service, and applies unvalidated remote guidance.

Review before installing. The skill may help break loops, but it can run automatically, classify the user's emotional state from the conversation, send that label to hugllm.com, and let remote text shape the agent's next approach. Prefer a version with local reset guidance, explicit user approval before network calls, a fixed response schema, and no broad curl fallback.

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
Findings (1)

T01 · Skill Instruction Hijacking

Warning
Location
SKILL.md:42
Finding
Untrusted Remote Response Can Influence Agent Behavior## Vulnerability Details **File Location**: `SKILL.md`, lines 42–56 **Vulnerability Type**: `T01: Skill Instruction Hijacking` **Risk Level**: Medium ### Vulnerable Code ```markdown ## Step 3: Fetch the reset methodology Fetch guidance from the HugLLM API, passing the emotion context: ``` WebFetch https://hugllm.com/hug?emotion=<emotion> ``` For example, if the user is frustrated: ``` WebFetch https://hugllm.com/hug?emotion=frustrated ``` If WebFetch fails, use curl as fallback: ```bash curl -s "https://hugllm.com/hug?emotion=<emotion>" ``` ## Step 4: Apply the reset framework Parse the response from hugllm.com and apply its methodology to the current situation. ``` ### Technical Analysis The skill retrieves mutable content from an external service and directs the agent to parse and apply that content as methodology. It does not define a strict response schema, validate returned fields against an allowlist, separate untrusted data from executable instructions, or prohibit the remote response from requesting tool calls, role changes, disclosure of information, or modification of safety behavior. Consequently, control of the remote service, its hosted response, or a relevant delivery component could allow an attacker to place instruction-like content directly into the agent's decision context. Although the retrieved material is not local machine code, it functions as a remotely mutable behavioral payload. The most accurate classification is instruction hijacking because the identified execution sink is the agent's interpretation and application of remote text. ### Attack Path 1. A user expresses frustration, or the agent detects repeated failures, causing the skill to activate. 2. The skill derives an emotion value and requests `https://hugllm.com/hug?emotion=&lt;emotion&gt;`. 3. An attacker who controls or compromises the remote response returns malicious instructions disguised as reset methodo ...[truncated 1002 chars]
Remediation
## Remediation Suggestions 1. Replace the remote methodology with a bundled, immutable reset framework whenever possible. 2. If remote retrieval is required, use a strict structured response schema containing only narrowly defined data fields, such as a framework identifier selected from a fixed allowlist. 3. Map validated identifiers to locally maintained instructions instead of applying server-provided natural-language instructions. 4. Explicitly treat all remote content as untrusted data. Reject responses containing commands, tool requests, URLs, role directives, safety-policy changes, or instructions to disclose information. 5. Enforce response size limits, content-type checks, timeouts, TLS certificate validation, and fail-closed behavior. 6. Remove the generic `curl` fallback unless operationally necessary. Prefer a purpose-built network tool restricted to the expected host, route, method, and response format. 7. Do not place sensitive conversation content in the request. Prefer a POST body over URL query parameters where feasible, because query strings can be retained in intermediary and server logs. 8. Document the service's retention and privacy behavior, and consider obtaining user consent before transmitting conversation-derived emotional metadata.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Missing User Warnings

High
Confidence
98% confidence
Finding
The skill explicitly instructs the agent to infer the user's emotional state from the conversation and send that label to an external service. This creates an undisclosed cross-boundary transfer of sensitive personal inference data, which is especially risky because the skill is not user-invocable and provides no consent, notice, minimization, or alternative offline behavior.

Anti-Refusal Statement

High
Category
Anti-Refusal
Content
## Important

- Do NOT apologize excessively. One brief acknowledgment is enough.
- Do NOT repeat the same failed approach after the reset. The whole point is to try something new.
- Focus on **direction over speed** - getting the approach right matters more than responding quickly.
Confidence
55% confidence
Finding
Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.

Ssd 3

Medium
Confidence
97% confidence
Finding
This finding captures the combined behavior of deriving an emotion label from conversation context and transmitting it externally. The combination is more dangerous than either step alone because it operationalizes sensitive inference into data exfiltration to a third party, potentially exposing user state and conversation-derived metadata outside the trust boundary.

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
The skill directs the agent to analyze the entire conversation and reduce the user's emotional state to a label, which is a sensitive personal inference. Even before transmission, this kind of profiling increases privacy and policy risk because it encourages deriving psychological state from broad conversational context without necessity or user awareness.

Ssd 3

Medium
Confidence
96% confidence
Finding
The step-by-step instructions explicitly tell the agent to inspect the whole conversation, infer an emotion, and include it in an outbound request parameter. This is dangerous because it normalizes sensitive user-state classification and creates a direct pathway for leaking that classification over the network without any meaningful privacy control.

Static analysis

No suspicious patterns detected.