GitHub Advisoryadvisory · npm
GHSA-x4hg-hfwf-p9mw @asymmetric-effort/nogginlessdom vulnerable to ReDoS via user-controlled regex in HTMLInputElement pattern validation
MEDIUM
Official page ↗
- Ecosystem
- npm
- Packages
- @asymmetric-effort/nogginlessdom
- Severity
- Moderate
- CVSS vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
- Weaknesses
- CWE-1333
- Reviewed
- 2026-07-02
Affected packages
• npm @asymmetric-effort/nogginlessdom: < 0.0.22 → fixed in 0.0.22
Description
Summary
The `HTMLInputElement.checkValidity()` method constructed a `RegExp` directly from the user-controlled `pattern` property without any sanitization or timeout protection. This allowed an attacker to inject a regex with catastrophic backtracking, freezing the event loop.
Fix
Fixed in commit https://github.com/asymmetric-effort/NogginLessDom/commit/25a3cbac665fae5663f8b71c073b80c3152dbe7b on `main`. Added:
• Pattern length limit (1024 characters)
• Nested quantifier detection (`hasNestedQuantifiers`) that rejects patterns like `(a+)+` before constructing the regex
• Patterns exceeding limits are treated as non-matching (safe default)
Related
Weakness · CWE (1)
- CWE-1333 Inefficient Regular Expression Complexity weakness