Back to skill

Security audit

Imsg 1.0.0

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent iMessage/SMS helper, but it installs an unpinned third-party executable that would run with very sensitive Messages and local-disk permissions.

Install only if you trust the upstream imsg Homebrew tap and are comfortable granting terminal Full Disk Access and Messages automation. Review the formula/source before installation, avoid granting broader permissions than needed, confirm every recipient and message before sending, and revoke macOS permissions when no longer using the tool.

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 from a Third-Party Homebrew Tap## Vulnerability Details **File Location**: `SKILL.md`, line 5 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium **Complete Code Snippet**: ```yaml metadata: {"clawdbot":{"emoji":"📨","os":["darwin"],"requires":{"bins":["imsg"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/imsg","bins":["imsg"],"label":"Install imsg (brew)"}]}} ``` ### Technical Analysis The installation configuration obtains an executable package from the third-party Homebrew tap `steipete/tap`. It does not pin the dependency to an immutable commit or artifact digest. The package implementation is also absent from the audited project, preventing verification of the code that will ultimately execute. Because Homebrew formula resolution depends on mutable upstream content, a compromised tap, maintainer account, formula, or referenced release artifact could distribute altered executable code after this Skill has been reviewed. The exposure is amplified by the documented operating requirements: the terminal is expected to have Full Disk Access and permission to automate Messages.app. Although no malicious code was found in the project itself, the dependency configuration creates a supply-chain trust boundary that is not cryptographically fixed by this package. ### Attack Path 1. An attacker compromises the custom Homebrew tap, its maintainer account, or an upstream artifact referenced by its formula. 2. The attacker publishes a modified `imsg` package or changes the formula to retrieve an attacker-controlled artifact. 3. A user installs or updates the Skill dependency through the configured `steipete/tap/imsg` formula. 4. Homebrew resolves and installs the mutable, compromised package. 5. The user or agent invokes `imsg` for chat listing, message history, monitoring, or message sending. 6. The compromised executable runs in the context of a terminal that may possess Full Disk Access and Messages.app automation permi ...[truncated 912 chars]
Remediation
## Remediation Suggestions 1. Pin the dependency to a reviewed, immutable version and, where supported, an exact source commit. 2. Verify downloaded artifacts with a cryptographic checksum or signature controlled by a trusted release process. 3. Review and record the exact Homebrew formula and all transitive download locations before approving installation. 4. Prefer a trusted distribution channel with reproducible builds and signed release artifacts. 5. Automate dependency integrity and provenance checks in the publication pipeline. 6. Avoid granting Full Disk Access to a general-purpose terminal. Use a narrowly scoped launcher or dedicated executable identity where macOS permission controls allow it. 7. Grant Messages.app automation permission only when sending is required, and retain the existing requirement to confirm the recipient and message before transmission. 8. Re-audit the dependency whenever its pinned version, formula, source repository, or artifact digest changes.
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