CVE-2023-24998: Apache Commons FileUpload Denial of Service Vulnerability

Summary

20/02/2023
Yes i
High
7.5

CVE-2023-24998: Apache Commons FileUpload denial of service vulnerability. Affects commons-fileupload:commons-fileupload versions < 1.5. Fixed in 1.5. How to fix ↓

Also tracked for

The same CVE-2023-24998 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Sponsored Devnack Your last release was probably never penetration tested Manual testing by engineers who build software, not an auditor's checklist. Trusted by teams at Swift and Google Talk to Devnack

Background

Apache Commons FileUpload is a popular Java library that provides a simple and flexible API for uploading files to a server. It is commonly used in web applications to handle file uploads. The library allows developers to parse and process multipart/form-data requests, making it easier to handle file uploads in a standardized way. However, versions prior to 1.5 of Apache Commons FileUpload are vulnerable to a denial of service (DoS) attack.

Vulnerability Detail

The vulnerability in Apache Commons FileUpload before version 1.5 arises from the lack of limitation on the number of request parts that can be processed. This allows an attacker to exploit the library by sending a large number of malicious upload requests or a series of uploads, overwhelming the server's resources and causing a DoS condition. It is important to note that the new configuration option to limit the number of request parts (FileUploadBase#setFileCountMax) is not enabled by default and must be explicitly configured.

How To Fix

Minimum fixed version

1.5

This is the first release that contains the fix.

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Workaround

If upgrading to Apache Commons FileUpload 1.5 is not immediately feasible, a temporary workaround is to manually limit the number of request parts processed in the application code. This can be achieved by implementing custom logic to count the number of request parts and rejecting requests that exceed a certain threshold. Here's an example of how this can be done in Java:

import org.apache.commons.fileupload.FileUploadBase;

public class CustomFileUpload extends FileUploadBase {

  @Override
  protected void parseRequest() throws Exception {
    // Add custom logic to count request parts
    int requestPartCount = 0;
    for (FileItemIterator iter = getItemIterator(request); iter.hasNext(); ) {
      // Process request parts
      requestPartCount++;
      // Check if the request part count exceeds the threshold
      if (requestPartCount > MAX_REQUEST_PARTS) {
        throw new FileUploadException("Too many request parts");
      }
    }
  }

}

Conclusion

In conclusion, Apache Commons FileUpload versions prior to 1.5 are vulnerable to a denial of service (DoS) attack. To mitigate this vulnerability, it is recommended to upgrade to Apache Commons FileUpload 1.5 or later. Alternatively, developers can implement custom logic to limit the number of request parts processed in the application code. For further support on vulnerability remediation, please contact DevNack.com.

See every vulnerability recorded for commons-fileupload:commons-fileupload →

Share this vulnerability

FAQ

Apache Commons FileUpload is a Java library that provides an API for handling file uploads in web applications. It simplifies the process of parsing and processing multipart/form-data requests.

The vulnerability allows an attacker to trigger a denial of service (DoS) condition by overwhelming the server's resources with a large number of malicious upload requests or a series of uploads. This can lead to service disruption and unavailability.

No, the fix to limit the number of request parts processed (FileUploadBase#setFileCountMax) is not enabled by default. It must be explicitly configured in the application code.

To fix this vulnerability, it is recommended to upgrade to Apache Commons FileUpload version 1.5 or later. Alternatively, you can implement custom logic to limit the number of request parts processed in the application code.

Yes, if upgrading to Apache Commons FileUpload 1.5 is not immediately feasible, you can implement custom logic in the application code to manually limit the number of request parts processed.

Related vulnerabilities

Recent vulnerabilities recorded for commons-fileupload:commons-fileupload.

How To Fix

Minimum fixed version

1.5

This is the first release that contains the fix.

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback