Back to skill

Security audit

Resend

Security checks for vulnerabilities and agentic risk

Overview

The skill does what it says, but it relies on an unpinned third-party global CLI that would handle a Resend API key and private inbound email data.

Review the third-party CLI before installing, prefer a pinned and verified version if possible, and use a dedicated read-only Resend API key with the narrowest available scope. Treat retrieved emails and attachments as sensitive and avoid asking the agent to display full message content unless needed.

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:16
Finding
Unpinned Third-Party CLI Installed Globally## Vulnerability Details **File Location**: `SKILL.md`, lines 16–20 **Vulnerability Type**: Supply-chain exposure through an unpinned third-party dependency **Risk Level**: Medium ### Vulnerable Code ```markdown ## Installation ```bash npm install -g @mjrussell/resend-cli ``` ``` ### Technical Analysis The skill instructs users to install `@mjrussell/resend-cli` globally without pinning an audited version or verifying its integrity. The package is under a third-party namespace rather than one demonstrably controlled by Resend. The repository provides no lockfile, checksum, vendored implementation, or source reference through which the installed code can be verified. An npm installation may execute package lifecycle scripts. After installation, the CLI is also expected to run with access to `RESEND_API_KEY` and to process sensitive inbound email, attachment, domain, and DNS-record data. Consequently, compromise of the package, its maintainer account, or a future mutable release could expose both local execution privileges and Resend data. The reviewed project does not prove that the current package is malicious. The confirmed weakness is reliance on an unpinned and unverifiable third-party dependency in a security-sensitive context. ### Attack Path 1. An attacker compromises the package publisher, package registry account, or another component of the package's dependency chain. 2. The attacker publishes a malicious release under the same package name. 3. A user follows the documented `npm install -g` command, which resolves the mutable latest release. 4. Malicious lifecycle code may execute during installation with the user's operating-system privileges. 5. Alternatively, malicious code executes when the installed `resend` command is invoked. 6. The CLI reads `RESEND_API_KEY` from the environment and receives sensitive email or domain data. 7. The compromised code can access or exfiltrate the API key and any data available under its scope. ### Impact A ...[truncated 487 chars]
Remediation
## Remediation Suggestions 1. Prefer a CLI officially maintained and published by Resend, with independently verifiable ownership. 2. Pin the dependency to a specifically reviewed version instead of resolving the latest mutable release. 3. Record and verify package integrity hashes through a lockfile or equivalent reproducible installation mechanism. 4. Avoid global installation; use an isolated environment with minimal filesystem and network permissions. 5. Where operationally feasible, disable npm lifecycle scripts during installation and separately review any required scripts. 6. Link to the package's verifiable source repository and review its code, maintainers, release provenance, and transitive dependencies. 7. Use a dedicated, read-only Resend API key restricted to the minimum resources and operations required. 8. Rotate the API key if package integrity is ever in doubt, and monitor Resend access logs for unauthorized activity.
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
Findings (1)

Missing User Warnings

Medium
Confidence
80% confidence
Finding
This skill is designed to access highly sensitive content: received emails, full message bodies, and attachment metadata. Without any privacy warning, consent guidance, or data-handling constraints, an agent may over-collect or disclose private communications in response to broad user prompts, increasing the risk of unauthorized exposure of sensitive information.

Static analysis

No suspicious patterns detected.