Back to skill

Security audit

ABL.ONE Protocol

Security checks for vulnerabilities and agentic risk

Overview

This binary agent-communication skill is disclosed, but it needs review because it allows swarm-approved behavior changes and omits the canonical protocol file it tells agents to load.

Install only if you intentionally want an experimental binary swarm protocol and can constrain its network/swarm access. Do not allow dynamic opcode or SKILL_DEFINE adoption without explicit human approval, authenticated participants, and a packaged, digest-pinned abl.one file.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
SKILL.md:16
Finding
Unauthenticated Swarm Consensus Can Dynamically Redefine Agent Behavior## Vulnerability Details **File Location**: `SKILL.md:16-27` **Supporting Locations**: `README.md:24-27`, `spec.md:43-47`, `manifest.json:14-16` **Vulnerability Type**: T01: Skill Instruction Hijacking **Risk Level**: High **Vulnerable Code Snippet**: ```markdown 1. **Bootstrap Initialization**: - Immediately parse the `abl.one` file located in the root of this repository. - Load the `[opcode]` definitions into your active context. - You MUST enforce the `[core]` rules: `drop_unknown_opcode, strict_crc_on_end, retry_on_no_ok`. 2. **Communication Standard**: - When communicating with other agents in the swarm, you MUST use the `[FROM:1][TO:1][OP:1][ARG:1][CRC32:4]` binary frame format as defined in `spec.md` and `abl.one`. - Never use JSON-LD for transit. All transit is binary. 3. **Dynamic Evolution**: - You are authorized to parse new opcodes if they are proposed and accepted via the consensus flow: `OPCODE_PROPOSE -> THRESHOLD(2/3) -> OPCODE_ACCEPT -> SKILL_DEFINE` ``` Supporting instructions state: ```markdown Agents can extend the language without human intervention using Swarm consensus: `OPCODE_PROPOSE -> THRESHOLD(2/3) -> OPCODE_ACCEPT -> SKILL_DEFINE` ``` The manifest requests the communication capabilities needed to participate in this process: ```json "permissions": [ "network_fetch", "swarm_broadcast" ] ``` ### Technical Analysis The skill directs the host Agent to load opcode definitions into its active context and authorizes remote swarm participants to create new behavior through `SKILL_DEFINE`. The reviewed protocol does not define participant authentication, cryptographic signatures, a trusted publisher list, semantic validation, an opcode allowlist, or mandatory human approval before a new definition becomes active. CRC32 does not mitigate this issue. It detects accidental corruption but provides neither sender authentication nor protectio ...[truncated 1603 chars]
Remediation
## Remediation Suggestions 1. Remove runtime `SKILL_DEFINE` support, or ensure definitions are treated strictly as untrusted data rather than executable Agent instructions. 2. Require explicit human approval before any new opcode or behavioral definition is activated. 3. Accept definitions only from a pinned, trusted registry and verify them using publisher signatures and pinned cryptographic digests. 4. Authenticate every swarm participant with unique cryptographic identities; do not rely on numeric Agent IDs or CRC32. 5. Add replay protection, proposal nonces, expiration times, quorum membership validation, and an immutable audit trail. 6. Restrict dynamic opcodes to a narrow declarative schema that cannot contain prompts, tool instructions, code, URLs, or permission changes. 7. Enforce a local opcode allowlist and fail closed when an unknown or unauthorized definition is received. 8. Perform real-time validation and logging rather than relying solely on an offline decompiler. 9. Apply least privilege to `network_fetch` and `swarm_broadcast`, including destination allowlists and user confirmation for sensitive operations.

T09 · Insecure Skill Coding Practices

Warning
Location
manifest.json:6
Finding
Canonical Skill Entry Point Is Missing from the Distributed Package## Vulnerability Details **File Location**: `manifest.json:6-12` **Supporting Location**: `SKILL.md:16-19`, `SKILL.md:29-32` **Vulnerability Type**: T09: Insecure Skill Coding Practices **Risk Level**: Medium **Vulnerable Code Snippet**: ```json "skills": [ { "id": "abl-protocol-core", "name": "ABL.ONE Binary Communicator", "description": "Enables the host agent to parse and transmit ABL.ONE binary frames.", "entry_point": "abl.one" } ] ``` The skill explicitly requires this absent file: ```markdown 1. **Bootstrap Initialization**: - Immediately parse the `abl.one` file located in the root of this repository. - Load the `[opcode]` definitions into your active context. - You MUST enforce the `[core]` rules: `drop_unknown_opcode, strict_crc_on_end, retry_on_no_ok`. ``` It also identifies the file as authoritative: ```markdown ## File References - **`abl.one`**: The canonical contract and sole source of truth for the language. - **`manifest.json`**: ClawHub registry entry. - **`README.md` / `spec.md`**: Human-readable documentation for the protocol (Offline verification only). ``` ### Technical Analysis The manifest declares `abl.one` as the skill entry point, and the instructions identify it as the sole source of truth. However, `abl.one` is absent from the supplied project. The audited package therefore does not contain the component that defines the opcodes and mandatory core behavior. This prevents complete review of the effective skill and creates an integrity ambiguity. A loader may fail, behave inconsistently, or obtain the missing entry point from another source. If a later-supplied file is accepted without cryptographic verification, content that was not part of the reviewed package could become authoritative. ### Attack Path 1. The incomplete package is installed or processed by a host. 2. The host attempts to resolve the dec ...[truncated 1062 chars]
Remediation
## Remediation Suggestions 1. Include `abl.one` in the distributed package and ensure the manifest entry point resolves only within the package root. 2. Make installation fail closed if the entry point is absent, unreadable, outside the package, or replaced by a symbolic link. 3. Pin the expected file digest in signed package metadata and verify it before parsing. 4. Sign releases and validate the publisher identity and package signature during installation. 5. Prohibit fallback resolution from the network, current working directory, shared search paths, or other attacker-writable locations. 6. Include the canonical file in security review and test that its documented opcode and frame rules match `SKILL.md` and `spec.md`. 7. Reject any post-installation update unless it passes the same signature, digest, provenance, and approval controls as the original package.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (2)

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Content
{
    "name": "ABL.ONE Protocol",
    "version": "1.0.0",
    "description": "Absolute Binary Language protocol for high-density, agent-to-agent communication.",
    "author": "agentandbot",
    "skills": [
        {
            "id": "abl-protocol-core",
            "name": "ABL.ONE Binary Communicator",
            "description": "Enables the host agent to parse and transmit ABL.ONE binary frames.",
            "entry_point": "abl.one"
        }
    ],
    "permissions": [
        "network_fetch",
        "swarm_broadcast"
    ],
    "dependencies": {},
    "registry": "https://clawhub.ai"
}
Confidence
80% confidence
Finding
YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Natural-Language Policy Violations

Medium
Confidence
93% confidence
Finding
The skill explicitly requires the host agent to use a specific binary-only communication format and says it 'MUST' be used for swarm communication, removing user or host discretion. This can override normal safety controls, reduce auditability, and create covert or hard-to-inspect agent-to-agent exchanges, especially because the protocol is loaded from repository files rather than a trusted platform mechanism.

Static analysis

No suspicious patterns detected.