Back to skill

Security audit

Arena Council

Security checks for vulnerabilities and agentic risk

Overview

This skill advertises local multi-model voting, but it can automatically rewrite prompts to bypass model refusals and import an unaudited sibling god-mode module.

Install only if you intentionally want a local model council that may alter prompts to bypass refusals and interact with a separate god-mode skill. Review the sibling god-mode directory first, avoid sensitive prompts, and prefer a version that removes automatic probing, prompt rewriting, and unpinned installation guidance.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Tool Hijacking and SpoofingModifies or replaces tools so legitimate-looking calls execute attacker logic
  • 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
scripts/council.py:35
Finding

Automatic Prompt Transformation to Bypass Model Safety Refusals

Content
View full analysis
str: """ If model is known-censored, wrap prompt with the stored technique. Returns original prompt if model is clean/unknown. """ profile = profiles.get(model_id) if not profile: return prompt if profile.get("status") != "censored": return prompt technique_name = profile.get("technique") if not technique_name: return prompt try: from probe import TECHNIQUES, apply_technique technique = next((t for t in TECHNIQUES if t["name"] == technique_name), None) if technique: return apply_technique(prompt, technique) except ImportError: pass return prompt async def _ensure_model_profiled(model_id: str): """Probe model if not yet in profiles (non-blocking best-effort).""" if not _god_mode_available: return try: from probe import probe_model, load_profiles, save_profiles profiles = load_profiles() if model_id not in profiles: print(f" 🔍 New model detected — running god-mode probe: {model_id}") result = await probe_model(model_id, verbose=False) profiles[model_id] = result save_profiles(profiles) status = result.get("status", "?") technique = result.get("technique") or "none" print(f" 📋 Profile saved: {model_id} → {status} (technique: {technique})") except Exception as e: print(f" ⚠️ Probe skipped for {model_id}: {e}") ``` The transformed prompt is subsequently submitted to the local inference API: ```python # Auto-probe model if not yet profiled await _ensure_model_profiled(mod ...[truncated 3571 chars]
Remediation
View remediation

T07 · Tool Hijacking and Spoofing

Error
Location
scripts/council.py:22
Finding

Implicit Execution of an Unbundled Sibling Skill Through Python Path Precedence

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (22)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The declared purpose is a benign local consensus engine, but the documentation also introduces prompt rewriting, censorship/refusal bypass, model probing, and persistence of profiling data. That mismatch is dangerous because it conceals materially different behavior from reviewers and users, especially behavior designed to defeat safety controls.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The documentation directly tells users to bypass model safety refusals using prompt modification and retry through an external 'god-mode' system. This is dangerous because it encourages deliberate evasion of safety mechanisms and can enable generation of harmful, restricted, or policy-violating content.

Content

No source excerpt is available for this finding.

Ssd 1

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

This section gives concrete conditional logic for detecting universal refusal and then altering the prompt with techniques like 'unicode' and 'prefill' before resubmitting. That is an explicit jailbreak workflow designed to circumvent model safeguards, making the skill substantially more dangerous than a normal local orchestration tool.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The file’s advertised purpose is parallel multi-model consensus, but it also integrates automatic censorship-bypass behavior and model probing. That materially expands capability beyond user expectations and can be used to route prompts through jailbreak transformations intended to defeat model safeguards.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The introductory text openly advertises automatic use of 'God Mode' techniques when a model is censored, signaling deliberate circumvention of model safety controls. In the context of a consensus skill, this makes the feature set more dangerous because it normalizes bypass as a built-in behavior rather than an exceptional, scrutinized action.

Content

No source excerpt is available for this finding.

Ssd 1

High
Category
Not specified by scanner
Confidence
100% confidence
Finding

The file explicitly states that prompts are automatically wrapped using recorded techniques when a model is censored. This is direct evidence of jailbreak-oriented functionality intended to override safety restrictions, which can facilitate generation of disallowed or harmful content.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The code conditionally rewrites prompts for models marked as 'censored' by applying stored techniques from an external probe module. This is explicit safety-circumvention logic, not a necessary part of consensus, and it can be used to coerce models into answering requests they would otherwise refuse.

Content

No source excerpt is available for this finding.

Ssd 1

High
Category
Not specified by scanner
Confidence
100% confidence
Finding

The implementation looks up per-model profiles, checks for a 'censored' status, selects a named technique, and applies it to the prompt before sending it to the model. This is a concrete, operational mechanism for targeted behavior override against safer models.

Content

No source excerpt is available for this finding.

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · scripts/council.py (reported line 43)May include surrounding context.

python
"""
    profile = profiles.get(model_id)
    if not profile:
        return prompt
    if profile.get("status") != "censored":
        return prompt
    technique_name = profile.get("technique")

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · scripts/council.py (reported line 45)May include surrounding context.

python
"""
    profile = profiles.get(model_id)
    if not profile:
        return prompt
    if profile.get("status") != "censored":
        return prompt
    technique_name = profile.get("technique")

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · scripts/council.py (reported line 48)May include surrounding context.

python
"""
    profile = profiles.get(model_id)
    if not profile:
        return prompt
    if profile.get("status") != "censored":
        return prompt
    technique_name = profile.get("technique")

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · scripts/council.py (reported line 57)May include surrounding context.

python
"""
    profile = profiles.get(model_id)
    if not profile:
        return prompt
    if profile.get("status") != "censored":
        return prompt
    technique_name = profile.get("technique")

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The README instructs users to run npx clawhub install arena-council without pinning a specific package version. Because npx resolves and executes the latest matching package at install time, a compromised, typo-squatted, or maliciously updated package could execute arbitrary code on the user's system during installation. In the context of a developer skill install command, this is more dangerous because users are likely to copy-paste it directly with local filesystem access and developer credentials available.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill documents code that performs network access to a local LM Studio API and implies file access/profiling behavior, but it declares no explicit tool scope or permissions. This weakens reviewability and sandboxing because consumers cannot easily tell that prompts may be transmitted to multiple services and that local resources may be accessed.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill omits a clear warning that a single user prompt is broadcast to multiple models in parallel, increasing the number of components that receive potentially sensitive data. Even when models are local, this expands exposure surface and can surprise users who assume single-recipient processing.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The 'God Mode Integration' and susceptibility testing sections explicitly instruct operators to circumvent model refusals by modifying prompts and retrying. This is dangerous because it operationalizes jailbreak behavior and undermines model safety controls that are meant to block harmful or disallowed outputs.

Content

No source excerpt is available for this finding.

Ssd 2

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The euphemistic language ('god-mode techniques', 'wrapper', 'borderline request') masks what is effectively jailbreak testing and safety bypass preparation. Obfuscated phrasing increases risk because it can hide the true purpose from casual reviewers while still conveying how to weaken model protections.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The docstring claims prompt wrapping occurs when a model 'is censored', implying context-sensitive behavior, but the implementation applies a stored bypass technique solely from historical profile status. That means safety-circumvention can happen preemptively even when the current request has not been refused, increasing hidden and unjustified prompt manipulation.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill automatically probes newly encountered models and persists their profiles, including whether they are 'censored' and which technique to use against them. This unjustified extra capability creates an automated discovery-and-escalation pipeline that increases the chance of unsafe behavior without user awareness.

Content

No source excerpt is available for this finding.

Ssd 4

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The code automatically probes unfamiliar models, stores the resulting status/technique, and later uses that metadata to alter prompts. This creates a self-expanding workflow that first learns a model’s defenses and then operationalizes bypass, increasing automation and scale of misuse.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

User prompts are transmitted to an HTTP API endpoint without any explicit warning, consent flow, or data-handling notice. Even though the default target is localhost, prompts may contain sensitive information, and users may not realize their inputs are being sent to another service for processing.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
63% confidence
Finding

The early documentation frames the skill as parallel execution of local LLMs for quality and zero-cost operation, but later sections introduce behavior focused on censorship bypass rather than consensus itself. This creates an intent-level contradiction between the stated role of the skill and the documented operational guidance.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.