title: Memory exhaustion when compiling regular expressions in regexp/syntax
description: Programs which compile regular expressions from untrusted sources may be vulnerable to memory exhaustion or denial of service. The parsed regexp representation is linear in the size of the input, but in some cases the constant factor can be as high as 40,000, making relatively small regexps consume much larger amounts of memory. After fix, each regexp being parsed is limited to a 256 MB memory footprint. Regular expressions whose representation would use more space than that are rejected. Normal use of regular expressions is unaffected.
problem types: CWE 400: Uncontrolled Resource Consumption
affected:
{
vendor: Go standard library
product: regexp/syntax
collectionURL: https://pkg.go.dev
packageName: regexp/syntax
versions:
version: 0, lessThan: 1.18.7, status: affected, versionType: semver
version: 1.19.0-0, lessThan: 1.19.2, status: affected, versionType: semver
programRoutines:
name: parser.push
name: parser.repeat
name: parser.factor
name: parse
name: Parse
defaultStatus: unaffected
}