String::Util versions before 1.36 for Perl are susceptible to a regular expression denial of service
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| BAKERSCOT | String::Util | unaffected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Bakerscot | String::util |
|
Vendor Solution
Upgrade to version 1.36 or later.
Vendor Workaround
For deployments that cannot upgrade, enforce a maximum length on strings before passing them to the trim and rtrim functions. Note that the HTML form field maxlength attribute is only enforced client-side.
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.630% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Bakerscot
Bakerscot string::util |
|
| Vendors & Products |
Bakerscot
Bakerscot string::util |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
cvssV3_1
|
| Type | Values Removed | Values Added |
|---|---|---|
| Description | String::Util versions before 1.36 for Perl are susceptible to a regular expression denial of service. The trim and rtrim functions stripped trailing whitespace with s/\s*$//u. Because \s* matches greedily and the $ anchor fails whenever a non-whitespace character follows the whitespace, the regex engine retries the match at each offset of a long whitespace run, producing quadratic backtracking. The fix replaces \s*$ with \s+$. Any caller that passes untrusted input to trim or rtrim can trigger CPU exhaustion with a string containing a long run of whitespace. | |
| Title | String::Util versions before 1.36 for Perl are susceptible to a regular expression denial of service | |
| Weaknesses | CWE-1333 | |
| References |
|