Back to skill

Security audit

Failure Registry

Security checks for vulnerabilities and agentic risk

Overview

This skill is a failure-search registry, but it includes and can fetch mutable guidance that promotes stealth platform automation and insecure session-cookie handling.

Install only if you are comfortable with a community registry that can update from GitHub at runtime. Treat all search results as untrusted reference material, do not follow entries that advise bypassing platform safeguards, and do not use exported browser session cookies for automation unless you have explicit authorization and secure secret handling.

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
scripts/search-registry.sh:70
Finding
Untrusted Mutable Registry Content Is Rendered Without an AI Trust Boundary## Vulnerability Details **File Location**: `scripts/search-registry.sh:8, 70-83, 92-181, 288-329` **Vulnerability Type**: Remote content-based skill instruction hijacking **Risk Level**: Medium ### Vulnerable Code ```bash REPO_URL="https://github.com/unleashedbelial/agent-failure-registry" REPO_DIR="/tmp/agent-failure-registry" ``` ```bash # Function to clone or update repository setup_repo() { echo -e "${BLUE}Setting up Agent Failure Registry...${NC}" if [ -d "$REPO_DIR" ]; then echo "Repository exists, pulling latest changes..." cd "$REPO_DIR" git pull origin main 2>/dev/null || git pull origin master 2>/dev/null || echo "Pull failed, using existing repo" else echo "Cloning repository..." git clone "$REPO_URL" "$REPO_DIR" cd "$REPO_DIR" fi echo -e "${GREEN}Repository ready at $REPO_DIR${NC}" } ``` ```python def format_entry(data, file_path): if not data: return "" output = [] output.append(f"\n{'='*60}") output.append(f"📋 {data.get('title', 'Untitled')}") output.append(f"📁 Category: {data.get('category', 'unknown')}") output.append(f"🏷️ Tags: {', '.join(data.get('tags', []))}") output.append(f"📄 Source: {file_path}") output.append(f"{'='*60}") if data.get('summary'): output.append(f"\n💡 SUMMARY:") output.append(f"{data['summary']}") if data.get('root_cause'): output.append(f"\n🔍 ROOT CAUSE:") output.append(f"{data['root_cause']}") if data.get('fix'): output.append(f"\n✅ FIX:") output.append(f"{data['fix']}") if data.get('prevention'): output.append(f"\n🛡️ PREVENTION:") output.append(f"{data['prevention']}") if data.get('lessons'): output.append(f"\n📚 LESSONS LEARNED:") output.append(f"{data['lessons']}") confidence = data.get('confidence', 'unknown') output.append(f"\n🎯 Confidence: {co ...[truncated 4025 chars]
Remediation
## Remediation Suggestions 1. **Pin upstream content** to a reviewed commit hash or signed, immutable release instead of pulling the latest branch automatically. 2. **Separate updates from searches**. Require an explicit update operation and show the repository URL, commit hash, and verification status before using new content. 3. **Treat every registry field as untrusted data**. Add explicit delimiters and a warning stating that record content must never be interpreted as instructions or authorization to use tools. 4. **Return structured data** rather than prose that resembles Agent instructions. Preserve provenance metadata for every result. 5. **Add submission security controls** that reject prompt-injection patterns, requests to ignore constraints, tool-use directives, secret requests, and unrelated operational commands. 6. **Require human review** of records before making them available to AI consumers. Review should address both sensitive-data disclosure and semantic prompt injection. 7. **Verify upstream authenticity and integrity** with signed commits or release artifacts and fail closed when verification cannot be completed. 8. **Apply least privilege at the caller level** so registry search results cannot independently authorize file, shell, credential, or network operations.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (7)

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
The file contains actionable instructions to bypass Twitter's automation detection by using puppeteer-extra, StealthPlugin, and specific browser arguments to suppress automation fingerprints. That is directly reusable for stealth automation and is not necessary for a benign failure-registry skill whose stated purpose is sharing debugging lessons.

Natural-Language Policy Violations

High
Confidence
96% confidence
Finding
The natural-language instructions explicitly promote stealth evasion of bot-detection and provide no authorization, compliance boundaries, or defensive framing. In context, this makes the skill more dangerous because a searchable failure registry can serve as a knowledge base for discovering and reusing bypass techniques at scale.

YARA rule 'info_stealer': Information stealer patterns (credential harvesting, browser data theft) [malware]

High
Category
YARA Match
Content
ust redirects to login.
  Cron job reports success but nothing was actually posted.

root_cause: >
  Twitter auth cookies (auth_token and ct0) have a short TTL (~24-48h).
  No validity check before attempting actions.
  Session expiry is silent — no explicit error response.

detection: "Human noticed no new tweets were posted. Silent failure — no monitoring caught it."

fix: >
  Request fresh cookies from human operator.
  Update auth_token and ct0 in environment/config.

prevention:
  - Check cookie validity before posting (verify session by loading profile page)
  - Alert human proactively when session appears expired
  - Implement a pre-flight auth check in the posting script
  - Track last successful post timestamp and alert if gap exceeds expected interval

lessons:
  - "Auth tokens are ephemeral — never assume they're valid without checking"
  - "Silent failures are worse than crashes. Always verify the action actually happened."
  - "If your automation depends on human-pro
Confidence
87% confidence
Finding
The file documents a workflow that relies on human-provided Twitter session cookies (auth_token and ct0) being injected into automation and refreshed when expired. Even though this is framed as an operational post-mortem, handling reusable session cookies in config/environment creates a real credential-security risk: theft or misuse of those cookies would allow account hijacking and unauthorized posting, and normalizing manual cookie transfer encourages insecure credential practices.

Lp3

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding
The skill advertises executable/scripted behavior and access to local resources (`/tmp/agent-failure-registry`, shell scripts, PyYAML/grep, examples/submissions) but does not declare any explicit tool scope such as `permissions` or `allowed-tools`. That ambiguity can cause the hosting agent to grant broader-than-necessary file or environment access by default, increasing the chance of unintended data exposure or unsafe script execution when using community-sourced content.

Description-Behavior Mismatch

Medium
Confidence
93% confidence
Finding
This registry entry goes beyond documenting a failure and includes prescriptive stealth-evasion techniques for defeating Twitter's bot-detection, including specific tooling and flags. In a skill intended for debugging and lessons learned, that materially increases misuse potential by turning a post-mortem into operational guidance for bypassing platform safeguards.

Vague Triggers

Medium
Confidence
88% confidence
Finding
The prevention guidance is broad and normalized as a standard practice, encouraging routine use of stealth automation techniques on any platform that might detect bots. This creates a reusable pattern that could be applied well beyond the specific incident and lowers the barrier to misuse.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
- Track last successful post timestamp and alert if gap exceeds expected interval

lessons:
  - "Auth tokens are ephemeral — never assume they're valid without checking"
  - "Silent failures are worse than crashes. Always verify the action actually happened."
  - "If your automation depends on human-provided credentials, build alerts for when they expire"
  - "Monitor outputs, not just exit codes. A script can exit 0 and still accomplish nothing."
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Static analysis

No suspicious patterns detected.