Skip to content

fix: reject empty and directory paths in --react-email#213

Merged
bukinoshita merged 4 commits intomainfrom
fix/empty-react-email-path-fa2b
Apr 9, 2026
Merged

fix: reject empty and directory paths in --react-email#213
bukinoshita merged 4 commits intomainfrom
fix/empty-react-email-path-fa2b

Conversation

@bukinoshita
Copy link
Copy Markdown
Member

@bukinoshita bukinoshita commented Apr 9, 2026

Summary by cubic

Reject empty and directory paths for --react-email to close BU-609. This prevents bundling CWD modules and unintended require() with CLI/API-key privileges.

  • Bug Fixes
    • Error on empty/whitespace --react-email before resolving the path.
    • Ensure the resolved path is a regular file; reject directories.
    • Updated broadcast update test to expect react_email_build_error on empty input and avoid SDK calls.

Written for commit 14b7420. Summary will update on new commits.

cursoragent and others added 2 commits April 9, 2026 17:27
Empty --react-email values (e.g. --react-email "") resolve to CWD via
path.resolve(''), which always exists as a directory. This allows
unintended bundling and require() of arbitrary CWD modules with CLI
privileges.

Add validation in buildReactEmailHtml:
- Reject empty/whitespace-only paths before resolution
- Verify resolved path is a regular file, not a directory

Update the broadcasts update test to expect an error on empty
--react-email instead of treating it as valid input.

Fixes: BU-609

Co-authored-by: Bu Kinoshita <bukinoshita@users.noreply.github.com>
@bukinoshita bukinoshita marked this pull request as ready for review April 9, 2026 18:58
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 2 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="tests/commands/broadcasts/update.test.ts">

<violation number="1" location="tests/commands/broadcasts/update.test.ts:444">
P2: Spy on `console.error` here; `outputError()` never writes errors with `console.log`, so this test won't observe the failure it is asserting.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review, or fix all with cubic.

Comment thread tests/commands/broadcasts/update.test.ts Outdated
@bukinoshita bukinoshita merged commit 52d186f into main Apr 9, 2026
7 checks passed
@bukinoshita bukinoshita deleted the fix/empty-react-email-path-fa2b branch April 9, 2026 19:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants