CVE-2026-117500 in HTTP::Bodyinfo

Summary

by MITRE • 10/28/2026

HTTP::Body versions before 1.24_01 for Perl allow CPU exhaustion via regex backtracking on the filename of a multipart upload.

For every file part, the multipart parser finds the suffix of the uploaded filename by matching the default $basename_regexp, qr/[^.]+(\.[^\\\/]+)$/, against the whole basename. A basename made of many dots and ending in a backslash makes the regex backtrack in time quadratic in its length.

A remote attacker can exhaust CPU with one request, as a basename of about 32 KB takes several seconds to match and every file part is matched separately.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 10/28/2026

The HTTP::Body module for Perl, prior to version 1.24_01, contains a critical regular expression denial-of-service vulnerability that allows remote attackers to cause CPU exhaustion through regex backtracking. This flaw specifically affects the parsing of multipart form data uploads, where the application attempts to extract file metadata from incoming requests. The security issue arises during the processing of each individual file part within a multipart upload stream. When the parser encounters a filename field, it utilizes a default regular expression defined as $basename_regexp with the pattern qr/[^.]+(\.[^\\\/]+$)/ to identify and isolate the suffix or extension of the uploaded filename. This regex is designed to match characters that are not dots followed by an optional dot and subsequent non-slash, non-backslash characters at the end of the string. However, the implementation fails to account for pathological input patterns that trigger catastrophic backtracking within the Perl regular expression engine.

The technical root cause lies in how the specific regex pattern interacts with filenames containing a high density of dots followed by a trailing backslash or other ambiguous delimiters. When such a malformed basename is provided, the regex engine enters an exponential time complexity state relative to the length of the input string. This phenomenon occurs because the alternation and quantifiers within the expression allow for multiple ways to match parts of the string that ultimately fail at the end, forcing the engine to backtrack extensively through all possible combinations before concluding a mismatch or success. In practical terms, this means that an attacker can craft a single HTTP request with a multipart body containing a filename field constructed from many dots and ending in a backslash. A basename length of approximately 32 kilobytes is sufficient to cause the CPU usage to spike significantly, taking several seconds to process each file part. Since multipart uploads often contain multiple parts or large files, this effect can be compounded if an attacker sends requests with multiple such malformed parts, leading to sustained high CPU utilization that effectively denies service to legitimate users and other processes on the host system.

From a classification perspective, this vulnerability aligns closely with CWE-400, which covers Uncontrolled Resource Consumption, specifically manifesting as a Regular Expression Denial of Service (ReDoS). The attack vector is remote and requires only network access to send an HTTP request, placing it within the Attack Vector category of Network in the CVSS framework. In terms of MITRE ATT&CK mapping, this behavior corresponds to T1496 Resource Hijacking, where adversaries leverage compromised resources for their own purposes or cause denial of service by consuming excessive computational power. The impact is primarily availability-related, as the primary consequence is the exhaustion of server-side CPU cycles rather than data exfiltration or privilege escalation. However, in high-throughput web environments, such a vulnerability can lead to cascading failures if load balancers timeout connections and retry requests, amplifying the resource consumption across multiple backend instances.

Mitigation strategies for this vulnerability involve immediate patching of the HTTP::Body module to version 1.24_01 or later, where the regular expression has been corrected to prevent backtracking issues. For organizations unable to upgrade immediately due to dependency constraints, defensive coding practices should be implemented at the application layer. This includes validating and sanitizing filename inputs before they are passed to the multipart parser. Developers can enforce strict length limits on filenames and restrict allowed characters using simpler string operations or more robust regex patterns that do not rely on nested quantifiers prone to backtracking. Additionally, implementing rate limiting and request size restrictions at the web server or reverse proxy level can help mitigate the impact by preventing any single client from sending excessively large multipart bodies in a short timeframe. Monitoring CPU usage spikes associated with HTTP upload endpoints can also serve as an early detection mechanism for such attacks, allowing administrators to block offending IP addresses dynamically until patches are applied.

Responsible

CPANSec

Reservation

10/27/2026

Disclosure

10/28/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

low

Sources

Might our Artificial Intelligence support you?

Check our Alexa App!