Skip to content

Fix #111: ReDoS vulnerability in email validation regex#117

Merged
thedhanawada merged 1 commit intomasterfrom
fix/issue-111-redos-email-regex
Mar 20, 2026
Merged

Fix #111: ReDoS vulnerability in email validation regex#117
thedhanawada merged 1 commit intomasterfrom
fix/issue-111-redos-email-regex

Conversation

@thedhanawada
Copy link
Copy Markdown
Collaborator

Fix

Changed email regex from /^[^\s@]+@[^\s@]+\.[^\s@]+$/ to /^[^\s@]+@[^\s@.]+\.[^\s@]+$/ in two locations (Event.js:152 and Event.js:922).

The original regex had overlapping [^\s@]+ character classes on both sides of the dot literal. When input like "user@aaa...aaa" (no dot) was tested, the engine tried all possible splits between the two groups, causing O(n^2) backtracking. Adding . to the exclusion set of the middle group ([^\s@.]+) eliminates the overlap.

Security

Files Changed

  • core/events/Event.js — 2 regex patterns updated

Fixes #111

The regex /^[^\s@]+@[^\s@]+\.[^\s@]+$/ had overlapping character
classes around the dot, causing O(n^2) backtracking on crafted input
like "user@" + "a".repeat(50).

Changed the middle group to [^\s@.]+ (excluding dot) to eliminate
the overlap and make the regex linear-time.

Fixes #111
@thedhanawada thedhanawada merged commit 724dad6 into master Mar 20, 2026
8 checks passed
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.

ReDoS vulnerability in email validation regex (Event.js)

1 participant