Back to skill

Security audit

Loop Engineering

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed workflow helper that can create local task notes and run bounded helper scripts, with no hidden exfiltration, destructive behavior, or privilege escalation found.

Install this only if you want a broad workflow skill that may stay active for a task and create local .loop state during deeper work. Review the bundled scripts first, prefer pinned or manually reviewed install/update methods in sensitive environments, and avoid enabling implicit/default activation if you want the skill used only on explicit command.

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
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Memory PoisoningPersistent Context Injection, Context Window Stuffing, Memory Manipulation
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (26)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
This mismatch is security-relevant because the skill presents itself as a conversational workflow aid while also instructing the agent to initialize local state and potentially edit ignore-related repository files. Undisclosed repository modifications and subprocess use can surprise users, alter project state, and create an opportunity for unsafe command execution in contexts where only advisory behavior was expected.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding
This mismatch is security-relevant because the skill presents itself as a conversational workflow aid while also instructing the agent to initialize local state and potentially edit ignore-related repository files. Undisclosed repository modifications and subprocess use can surprise users, alter project state, and create an opportunity for unsafe command execution in contexts where only advisory behavior was expected.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
This mismatch is security-relevant because the skill presents itself as a conversational workflow aid while also instructing the agent to initialize local state and potentially edit ignore-related repository files. Undisclosed repository modifications and subprocess use can surprise users, alter project state, and create an opportunity for unsafe command execution in contexts where only advisory behavior was expected.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
This mismatch is security-relevant because the skill presents itself as a conversational workflow aid while also instructing the agent to initialize local state and potentially edit ignore-related repository files. Undisclosed repository modifications and subprocess use can surprise users, alter project state, and create an opportunity for unsafe command execution in contexts where only advisory behavior was expected.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
This mismatch is security-relevant because the skill presents itself as a conversational workflow aid while also instructing the agent to initialize local state and potentially edit ignore-related repository files. Undisclosed repository modifications and subprocess use can surprise users, alter project state, and create an opportunity for unsafe command execution in contexts where only advisory behavior was expected.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
This mismatch is security-relevant because the skill presents itself as a conversational workflow aid while also instructing the agent to initialize local state and potentially edit ignore-related repository files. Undisclosed repository modifications and subprocess use can surprise users, alter project state, and create an opportunity for unsafe command execution in contexts where only advisory behavior was expected.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
This mismatch is security-relevant because the skill presents itself as a conversational workflow aid while also instructing the agent to initialize local state and potentially edit ignore-related repository files. Undisclosed repository modifications and subprocess use can surprise users, alter project state, and create an opportunity for unsafe command execution in contexts where only advisory behavior was expected.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
This mismatch is security-relevant because the skill presents itself as a conversational workflow aid while also instructing the agent to initialize local state and potentially edit ignore-related repository files. Undisclosed repository modifications and subprocess use can surprise users, alter project state, and create an opportunity for unsafe command execution in contexts where only advisory behavior was expected.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
This mismatch is security-relevant because the skill presents itself as a conversational workflow aid while also instructing the agent to initialize local state and potentially edit ignore-related repository files. Undisclosed repository modifications and subprocess use can surprise users, alter project state, and create an opportunity for unsafe command execution in contexts where only advisory behavior was expected.

Direct Prompt Extraction

High
Category
System Prompt Leakage
Content
parent -> prompt generation -> downstream simulation -> product/UI prompt review -> parent
```

The output prompt must itself route product UX before implementation and rendered UI after implementation.

## Outcome-contract examples
Confidence
85% confidence
Finding
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Memory Manipulation

High
Category
Memory Poisoning
Content
1. Primary records: official documentation, source code, standards, filings, datasets, current policies, full talks, papers
2. Reproducible observation or direct testing
3. High-quality independent analysis with transparent method
4. Direct practitioner evidence with clear context and limitations
5. Vendor, marketing, affiliate, PR, SEO, AEO, or GEO content for discovery or for documenting the publisher's own claim
6. Secondary summaries for discovery only
Confidence
80% confidence
Finding
Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.

Rp1

Medium
Category
MCP Rug Pull
Confidence
87% confidence
Finding
The README instructs users to run `npx skills add ...` without pinning the package version. `npx` resolves and executes the latest published installer at runtime, so a compromised upstream package, dependency, or unexpected breaking change could execute arbitrary code on the user's machine during installation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
87% confidence
Finding
This command again uses `npx skills add ...` without a fixed version, which means installation behavior depends on whatever version is current at execution time. That creates a supply-chain risk where users may run unreviewed code fetched on demand from the registry.

Vague Triggers

Medium
Confidence
86% confidence
Finding
The activation examples include broad phrases like `use loop to...` and `loop this task...`, which may overlap with ordinary user language rather than an unmistakable skill invocation token. In agents that support loose natural-language skill triggering or persistent activation, this can cause unintended activation, expanding the skill's authority and potentially causing tool use, state changes, or instruction-routing the user did not clearly intend.

Rp1

Medium
Category
MCP Rug Pull
Confidence
84% confidence
Finding
The update instruction `npx skills update` also executes the latest installer/tooling without version pinning. Even for updates, this exposes users to remote code execution risk from compromised or altered upstream packages and reduces reproducibility.

Rp1

Medium
Category
MCP Rug Pull
Confidence
84% confidence
Finding
The uninstall command `npx skills remove ...` similarly relies on an unpinned package execution path. Any invocation of an unpinned remote CLI can run arbitrary code, so even maintenance commands carry supply-chain execution risk.

Lp3

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding
The skill explicitly instructs the agent to run shell commands, read and write files, and potentially access network-relevant references, but it declares no tool scope or permission boundaries. That mismatch can cause the runtime to grant broader capabilities than a user expects, increasing the chance of unsafe filesystem or command execution during normal use.

Persistent Context Injection

Medium
Category
Memory Poisoning
Content
## Activate and continue cleanly

Run this workflow when the user explicitly invokes it, asks to keep it active for the current task or thread, or when an applicable personal, workspace, or project instruction says to use it by default. Once activated for a task, keep it active for substantive follow-ups in that task until the user opts out or clearly replaces the task. The user does not need to repeat the skill tag. Carrying the preference into unrelated new threads still requires an applicable persistent instruction; do not pretend thread memory is global configuration.

When loop-by-default is active, match the loop to the work. Use Light for a narrow answer, clarification, or reversible edit. Escalate to Standard or Deep only when stronger evidence, iteration, or coordination can materially improve the outcome.
Confidence
88% confidence
Finding
The skill instructs the agent to remain active across substantive follow-ups based on thread context or persistent workspace/project instructions. Persistent context injection is risky because it can silently influence later requests, cause actions to be taken under stale assumptions, and make privilege-bearing behaviors persist beyond the user’s immediate intent.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The skill enables implicit invocation with no narrowly defined activation conditions or exclusion rules in the YAML itself, which can cause the agent to activate the loop behavior in situations the user did not clearly intend. Because this skill changes how subsequent work is performed across many domains and persists once active, unintended activation can alter task handling, increase prompt-surface exposure, and create policy or instruction-following drift.

Vague Triggers

Medium
Confidence
93% confidence
Finding
The activation rule is broad enough that the skill can remain active across 'substantive follow-ups' and also be triggered by workspace or project defaults, which creates ambiguity about when it should take control and when it must disengage. In an agent setting, unclear activation boundaries can cause unintended persistence, scope creep, and application of the loop to tasks the user did not clearly intend, increasing the chance of overreach or unsafe autonomous behavior.

subprocess module call

Medium
Category
Dangerous Code Execution
Content
def find_project_root(start: Path) -> Path:
    try:
        result = subprocess.run(
            ["git", "rev-parse", "--show-toplevel"],
            cwd=start,
            check=True,
Confidence
70% confidence
Finding
subprocess module calls execute external commands. Without careful input validation, this enables command injection.

subprocess module call

Medium
Category
Dangerous Code Execution
Content
def ensure_private_state(root: Path, edit_gitignore: bool) -> None:
    """Exclude .loop locally; edit the tracked ignore file only by explicit request."""
    try:
        ignored = subprocess.run(
            ["git", "check-ignore", "-q", ".loop/probe"],
            cwd=root,
            check=False,
Confidence
70% confidence
Finding
subprocess module calls execute external commands. Without careful input validation, this enables command injection.

subprocess module call

Medium
Category
Dangerous Code Execution
Content
if edit_gitignore:
            append_exclusion(root / ".gitignore")
            return
        result = subprocess.run(
            ["git", "rev-parse", "--git-path", "info/exclude"],
            cwd=root,
            check=True,
Confidence
70% confidence
Finding
subprocess module calls execute external commands. Without careful input validation, this enables command injection.

subprocess module call

Medium
Category
Dangerous Code Execution
Content
with tempfile.TemporaryDirectory() as temp:
            state_dir = Path(temp)
            (state_dir / "state.md").write_text(self._state(mode, declaration))
            return subprocess.run(
                [
                    "python3",
                    str(CREATE_HANDOFF),
Confidence
70% confidence
Finding
subprocess module calls execute external commands. Without careful input validation, this enables command injection.

subprocess module call

Medium
Category
Dangerous Code Execution
Content
def test_generated_deep_template_rejects_blank_topology_declaration(self) -> None:
        with tempfile.TemporaryDirectory() as temp:
            initialized = subprocess.run(
                [
                    "python3",
                    str(INIT_LOOP_STATE),
Confidence
70% confidence
Finding
subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Static analysis

No suspicious patterns detected.