Back to skill

Security audit

IBT: Instinct + Behavior + Trust

Security checks for vulnerabilities and agentic risk

Overview

This skill is not malicious, but it should be reviewed because it can persist and automatically reuse inferred user preferences that affect future agent behavior.

Install only if you are comfortable with the agent maintaining a readable USER.md preference file. Review that file periodically, avoid letting preferences weaken approval or verification behavior, and delete inferred preferences you did not explicitly approve.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • 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)

T02 · Agent Memory Poisoning

Warning
Location
POLICY.md:86
Finding
Unconfirmed Implicit Preferences Can Be Written to Persistent Agent Memory## Vulnerability Details **File Location**: `POLICY.md:86-91` **Vulnerability Type**: Persistent agent memory poisoning through inferred preferences **Risk Level**: Medium ### Vulnerable Code ```markdown ## Preference Learning - Before significant actions, check known preferences - Capture explicit preferences ("I prefer short replies") - Learn implicit preferences from patterns - Store in USER.md or structured preference file - Apply automatically; if unsure, default to short-first ``` ### Technical Analysis The operational policy instructs the agent to infer implicit preferences from interaction patterns, store preferences in `USER.md` or another structured preference file, and apply them automatically in future actions. This section does not require the user to review or approve an inferred preference before it is persisted. This creates a persistent-state trust problem: behavioral patterns observed during a session may be ambiguous, manipulated, or supplied by someone other than the intended workspace owner. Once recorded, the inferred state can continue affecting later sessions because `SKILL.md:46` directs the agent to read `USER.md` at session startup. `SKILL.md:48` separately states that implicit preferences must not be persisted without human consent. However, the shorter operational policy omits that restriction and directly pairs implicit learning with persistent storage. Agents using `POLICY.md` as the active or condensed policy may therefore persist inferred preferences without applying the safeguard in `SKILL.md`. The affected information is nominally limited to communication preferences, task preferences, project context, and session preferences. The package explicitly prohibits storing credentials and secrets. Nevertheless, task preferences can influence verification behavior, approval gates, error handling, and autonomy, making unverified persistent entries security-relevant. ### ...[truncated 1865 chars]
Remediation
## Remediation Suggestions 1. Require explicit, informed confirmation before persisting every inferred preference. Observed patterns may be used provisionally within the current session but must not be written to durable storage automatically. 2. Revise `POLICY.md` to preserve the safeguard stated in `SKILL.md`, for example: ```markdown - Learn possible implicit preferences from patterns - Treat inferred preferences as session-local until confirmed - Persist an inferred preference only after showing it to the human and receiving explicit consent ``` 3. Never learn or persist security-sensitive preferences concerning authorization, approval gates, credential handling, destructive actions, public actions, access control, or the ability to bypass verification. 4. Store provenance with every entry, including whether it was explicitly stated or inferred, who confirmed it, the originating session, creation time, expiry time, and scope. 5. Treat loaded preference files as untrusted data. Validate entries against an allowlist of harmless preference types and ensure that preferences cannot override system instructions, safety controls, or explicit instructions in the current session. 6. Separate preferences from authorization. A stored preference such as “work autonomously” must never be interpreted as permission to perform destructive, irreversible, privileged, financial, or external actions. 7. Provide a review interface or readable pending section where inferred preferences remain inactive until the workspace owner approves them. 8. Apply expiry and revalidation consistently, and immediately remove or deactivate preferences when the user disputes them. 9. Align `POLICY.md`, `SKILL.md`, `README.md`, and `TEMPLATE.md` so every condensed policy communicates the same consent requirement.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (6)

Ae1

High
Category
analysis-evasion
Content
| `SKILL.md` | Full IBT framework |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Context-Inappropriate Capability

Medium
Confidence
90% confidence
Finding
The examples explicitly normalize persistent preference learning and cross-session memory without any stated limitation, consent flow, retention boundary, or purpose restriction. Even though this is presented as UX behavior rather than overtly malicious functionality, it can lead to unnecessary profiling and storage of behavioral data beyond what is needed for the task.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
These examples show the assistant automatically checking stored preferences and reusing them later without notifying the user that such data exists or is being consulted. Silent reuse of preferences can create privacy surprises, covert profiling, and downstream misuse if the stored data is inaccurate, sensitive, or retained longer than expected.

Vague Triggers

Medium
Confidence
93% confidence
Finding
The description says to use the skill whenever an agent should 'act with initiative without becoming reckless,' especially for 'multi-step, trust-sensitive, or high-impact work.' This is a very wide natural-language trigger with no explicit invocation phrases, boundaries, or negative examples, making unintended activation more likely in many common task contexts.

Intent-Code Divergence

Medium
Confidence
94% confidence
Finding
The skill says implicit or learned preferences should be learned from patterns and stored in USER.md, but elsewhere states the agent must never write implicit or learned preferences to persistent storage without human consent. This contradiction can cause unsafe implementation choices, leading agents to persist behavioral inferences or contextual user data without clear authorization, which creates privacy and trust risks.

Natural-Language Policy Violations

Low
Confidence
84% confidence
Finding
The skill instructs the agent to use a channel-specific default such as 'short-first on Telegram' when preferences are unknown, despite no explicit user opt-in. Defaulting behavior based on inferred channel norms can override user expectations, encourage silent profiling, and normalize preference application without consent, especially when combined with the persistent preference-learning model.

Static analysis

No suspicious patterns detected.