Versioned security assessment

Report ID: SA-8905554B

7/5/2026, 8:49:45 PM

react-email security assessment v4

Skill Security Certification Report

Audit History
Audit model: codex Historical report
Skill name
react-email
Version
v4
Maintainer
resend
Coverage
8 Files scanned · 3,666 Lines analyzed
Policy version
Unavailable

Confirmed finding summary

No confirmed security findings

The completed audit recorded no confirmed security findings. This is not proof that the Skill has no side effects.

Installation context

Historical evidence

This report may not describe the currently installable artifact. Open the current Skill page for install guidance.

Open current Skill page

This report does not block or authorize the manifest or ZIP.

Most static hits are false positives from Markdown fences, JSX template literals, placeholder URLs, and test anti-patterns. I confirmed the setup commands, dynamic i18n imports, and email-sending examples as legitimate but security-sensitive capabilities. No prompt injection or hidden exfiltration instructions were found.

Report position

Historical report

Open audit history before using this report to install.

Audit attestation

Not attestable

The required immutable binding is incomplete.

Human verification

Not verified

No human verification is recorded for this report.

Coverage

8 Files scanned · 3,666 Lines analyzed

25 items shown for review

Limitations

This report does not claim runtime or sandbox execution and does not prove the absence of side effects.

Evidence chain

Follow the evidence from source binding to the install contract. Available evidence supports verification; it is not a safety guarantee.

  1. Source

    Binding unavailable

  2. Artifact

    Identity incomplete

  3. Audit

    Complete

  4. Install contract

    Open manifest to verify

    Open manifest

Capabilities observed

Observed means this report recorded supporting evidence. Not recorded does not prove that a capability is absent.

Contains scripts

May execute code included with the Skill.

Observed in 7 evidence locations

Network access

May connect to external services.

Observed in 55 evidence locations

Filesystem access

May read or write local files.

Observed in 9 evidence locations

Env variables

May read values from the process environment.

Observed in 8 evidence locations

External commands

May invoke commands or programs outside the Skill.

Observed in 101 evidence locations

Capability review items (25)
Medium
Dynamic import() expression
messages: await import(`../messages/${locale}.json`),
The example interpolates locale or namespace values into dynamic imports. This is legitimate i18n guidance, but generated code should validate those values against an allowlist.
Medium
Dynamic import() expression
messages: await import(`../messages/${locale}/welcome-email.json`)
The example interpolates locale or namespace values into dynamic imports. This is legitimate i18n guidance, but generated code should validate those values against an allowlist.
Medium
Dynamic import() expression
import(`./messages/${language}/${namespace}.json`)
The example interpolates locale or namespace values into dynamic imports. This is legitimate i18n guidance, but generated code should validate those values against an allowlist.
Medium
Dynamic import() expression
messages: await import(`../messages/${locale}.json`).catch(() =>
The example interpolates locale or namespace values into dynamic imports. This is legitimate i18n guidance, but generated code should validate those values against an allowlist.
Medium
Dynamic import() expression
messages: await import(`../messages/${locale}.json`),
The example interpolates locale or namespace values into dynamic imports. This is legitimate i18n guidance, but generated code should validate those values against an allowlist.
Medium
Email sending capability
**Nodemailer:**
The sending guide includes SMTP/Nodemailer email delivery code. This is a legitimate feature, but it can transmit content externally and should require verified domains and user approval.
Medium
Email sending capability
import nodemailer from 'nodemailer';
The sending guide includes SMTP/Nodemailer email delivery code. This is a legitimate feature, but it can transmit content externally and should require verified domains and user approval.
Medium
Email sending capability
const transporter = nodemailer.createTransport({
The sending guide includes SMTP/Nodemailer email delivery code. This is a legitimate feature, but it can transmit content externally and should require verified domains and user approval.
Medium
Email sending capability
host: 'smtp.example.com',
The sending guide includes SMTP/Nodemailer email delivery code. This is a legitimate feature, but it can transmit content externally and should require verified domains and user approval.
Medium
Email sending capability
auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASS }
The sending guide includes SMTP/Nodemailer email delivery code. This is a legitimate feature, but it can transmit content externally and should require verified domains and user approval.
Medium
Email sending capability
await transporter.sendMail({
The sending guide includes SMTP/Nodemailer email delivery code. This is a legitimate feature, but it can transmit content externally and should require verified domains and user approval.
Medium
Dynamic import() expression
messages: await import(\`../messages/\${locale}.json\`),
The example interpolates locale or namespace values into dynamic imports. This is legitimate i18n guidance, but generated code should validate those values against an allowlist.
Medium
Ruby/shell backtick execution
You need to scaffold a new React Email project using the create-email CLI. This will create a folder
The surrounding setup section instructs running package-manager or npm script commands. These commands can fetch or execute local project code and need explicit user approval.
Medium
Ruby/shell backtick execution
```sh
The surrounding setup section instructs running package-manager or npm script commands. These commands can fetch or execute local project code and need explicit user approval.
Medium
Ruby/shell backtick execution
```sh
The surrounding setup section instructs running package-manager or npm script commands. These commands can fetch or execute local project code and need explicit user approval.
Medium
Ruby/shell backtick execution
```sh
The surrounding setup section instructs running package-manager or npm script commands. These commands can fetch or execute local project code and need explicit user approval.
Medium
Ruby/shell backtick execution
```sh
The surrounding setup section instructs running package-manager or npm script commands. These commands can fetch or execute local project code and need explicit user approval.
Medium
Ruby/shell backtick execution
```sh
The surrounding setup section instructs running package-manager or npm script commands. These commands can fetch or execute local project code and need explicit user approval.
Medium
Ruby/shell backtick execution
```sh
The surrounding setup section instructs running package-manager or npm script commands. These commands can fetch or execute local project code and need explicit user approval.
Medium
Ruby/shell backtick execution
```sh
The surrounding setup section instructs running package-manager or npm script commands. These commands can fetch or execute local project code and need explicit user approval.
Medium
Ruby/shell backtick execution
```sh
The surrounding setup section instructs running package-manager or npm script commands. These commands can fetch or execute local project code and need explicit user approval.
Medium
Ruby/shell backtick execution
```sh
The surrounding setup section instructs running package-manager or npm script commands. These commands can fetch or execute local project code and need explicit user approval.
Medium
Ruby/shell backtick execution
```sh
The surrounding setup section instructs running package-manager or npm script commands. These commands can fetch or execute local project code and need explicit user approval.
Medium
Ruby/shell backtick execution
```sh
The surrounding setup section instructs running package-manager or npm script commands. These commands can fetch or execute local project code and need explicit user approval.
Medium
Ruby/shell backtick execution
```sh
The surrounding setup section instructs running package-manager or npm script commands. These commands can fetch or execute local project code and need explicit user approval.

Risk findings

Confirmed security concerns are separated from items that still need review.

No confirmed security findings were recorded for this completed audit.

Remediation

Suggested fixes recorded by this audit. Applying them is the maintainer’s responsibility.

  1. FIX-001
    Medium
    Package-manager commands run during setup and preview.
    Ask for explicit user approval before running npx, npm, yarn, pnpm, or bun commands, and prefer pinned package versions where possible.
  2. FIX-002
    Medium
    Locale and namespace values are interpolated into dynamic import paths.
    Validate locale, language, and namespace values against fixed allowlists before dynamic imports, and document safe fallback behavior.
  3. FIX-003
    Medium
    Email sending examples can transmit content to external recipients.
    Require verified sender domains, explicit user approval, and test recipients before any real email delivery.
  4. FIX-004
    Low
    Provider credentials are needed for sending workflows.
    Keep API keys in environment variables, avoid logging them, and recommend least-privilege provider credentials.

Expert evidence

Immutable subject identity, scanner metadata, dismissed matches, and source-level evidence.

Artifact subject

Marketplace commit
Unavailable
Content hash
Unavailable
Tree hash
Unavailable
Skill path
Unavailable
Audit payload hash
Unavailable

Analysis metadata

Audit model: codex

Analysis state: Complete

Scope is limited to the recorded files, lines, methods, and evidence. No runtime or sandbox execution is claimed.

Static false positives ignored (1)
High
Weak cryptographic algorithm
"footer": "Si vous avez des questions, répondez à cet e-mail."
Force-confirmed blocker/high static finding; AI dismissal overridden.

Verify and export

The manifest and lockfile bind install artifacts to cryptographic hashes. This integrity claim is separate from the security assessment.

Audit attestation: not_attestable