A bad regular expression is generated any time you have multiple sequential optional groups (curly brace syntax), such as {a}{b}{c}:z. The generated regex grows exponentially with the number of groups, causing denial of service.
Fixed in version 8.4.0.
Limit the number of sequential optional groups in route patterns. Avoid passing user-controlled input as route patterns.
{
"github_reviewed": true,
"nvd_published_at": "2026-03-26T19:17:08Z",
"severity": "HIGH",
"cwe_ids": [
"CWE-1333",
"CWE-400"
],
"github_reviewed_at": "2026-03-27T22:23:27Z"
}