Back to skill

Security audit

Sag

Security checks for vulnerabilities and agentic risk

Overview

This skill is a small, coherent ElevenLabs text-to-speech helper, with the main caution being its unpinned third-party Homebrew CLI install.

Install only if you trust the sag Homebrew tap and are comfortable giving the resulting CLI access to an ElevenLabs API key. Use a revocable, limited API key where possible, and avoid sending sensitive text for speech generation unless you trust the CLI and ElevenLabs handling of that text.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:5
Finding
Unpinned Executable Dependency Installed from a Custom Homebrew Tap<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 5 **Vulnerability Type**: Supply-chain risk from an unpinned third-party executable dependency **Risk Level**: Medium ### Vulnerable Code Snippet ```yaml metadata: {"clawdbot":{"emoji":"🗣️","requires":{"bins":["sag"],"env":["ELEVENLABS_API_KEY"]},"primaryEnv":"ELEVENLABS_API_KEY","install":[{"id":"brew","kind":"brew","formula":"steipete/tap/sag","bins":["sag"],"label":"Install sag (brew)"}]}} ``` ### Technical Analysis The skill directs the host environment to install the `sag` executable from the custom Homebrew tap `steipete/tap`. The dependency is identified only by its mutable formula name, `steipete/tap/sag`; no immutable version, source commit, checksum, or cryptographic signature is specified. Consequently, the code installed in the future may differ from the dependency that was reviewed. If the tap, formula, upstream release infrastructure, or maintainer account is compromised, a malicious package could be distributed under the expected name. Homebrew installation logic may execute package lifecycle operations, while later invocations of `sag` execute the installed binary directly. The skill also requires `ELEVENLABS_API_KEY` and passes user-provided text to this executable. A compromised dependency could therefore read the API credential from its process environment, capture text submitted for speech synthesis, access files available to the executing account, or run arbitrary commands with that account's privileges. This finding establishes an insecure dependency configuration and supply-chain exposure. It does not establish that the current `sag` package or its maintainer is malicious. ### Attack Path 1. An attacker compromises the custom Homebrew tap, its maintainer account, the referenced upstream artifact, or another part of its release pipeline. 2. The attacker modifies the `sag` formula or distributed artifact while retaining the expected package and executable name ...[truncated 1199 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Prefer an official and independently verifiable distribution channel for the `sag` executable. 2. Pin the dependency to an immutable release version or source commit rather than a mutable Homebrew formula reference. 3. Verify downloaded artifacts using a trusted cryptographic checksum or signature before installation. 4. Review and lock the Homebrew formula and all transitive download locations used by that formula. 5. Use a dependency allowlist and periodically verify the publisher, repository ownership, release history, and signing keys. 6. Run the executable under a dedicated, least-privileged account or sandbox with restricted filesystem and network access. 7. Provide `ELEVENLABS_API_KEY` only to a verified executable and use a narrowly scoped, revocable API key with usage limits. 8. Avoid exposing unrelated environment variables to the child process. 9. Record the approved package version and integrity digest in `SKILL.md` or in a locked installation manifest so future changes require explicit review. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep

Static analysis

No suspicious patterns detected.