CVE-2023-26048
Published: 18 April 2023
Summary
CVE-2023-26048 is a medium-severity Uncontrolled Resource Consumption (CWE-400) vulnerability in Eclipse Jetty. Its CVSS base score is 5.3 (Medium).
Operationally, ranked in the top 2.4% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog.
Deeper analysis
Jetty is a Java-based web server and servlet engine affected by CVE-2023-26048. Servlets using multipart support (for example those annotated with @MultipartConfig) that invoke HttpServletRequest.getParameter() or HttpServletRequest.getParts() can trigger an OutOfMemoryError when a client supplies a multipart request containing a part that specifies a name but no filename and carries arbitrarily large content. The condition occurs even when the default fileSizeThreshold=0 setting is in place, which is intended to stream part data to disk rather than retain it in memory.
An unauthenticated remote attacker can send a single crafted multipart request to exhaust heap memory on the target server, producing an OutOfMemoryError that degrades or interrupts service. Although the JVM may eventually recover, the interruption window can be significant, resulting in a low-impact denial-of-service condition as reflected by the CVSS 5.3 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L) and the associated CWE-400/CWE-770 classifications.
The Eclipse Jetty project has released fixes in versions 9.4.51, 10.0.14, and 11.0.14. Administrators unable to upgrade immediately can mitigate the issue by explicitly configuring the multipart maxRequestSize parameter to a non-negative value, thereby capping the total size of an incoming multipart request even though the content is still buffered in memory. The official security advisory and linked pull requests document these remediation steps.
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2023-1382
Vulnerability details
Jetty is a java based web server and servlet engine. In affected versions servlets with multipart support (e.g. annotated with `@MultipartConfig`) that call `HttpServletRequest.getParameter()` or `HttpServletRequest.getParts()` may cause `OutOfMemoryError` when the client sends a multipart request with a part that…
more
has a name but no filename and very large content. This happens even with the default settings of `fileSizeThreshold=0` which should stream the whole part content to disk. An attacker client may send a large multipart request and cause the server to throw `OutOfMemoryError`. However, the server may be able to recover after the `OutOfMemoryError` and continue its service -- although it may take some time. This issue has been patched in versions 9.4.51, 10.0.14, and 11.0.14. Users are advised to upgrade. Users unable to upgrade may set the multipart parameter `maxRequestSize` which must be set to a non-negative value, so the whole multipart content is limited (although still read into memory).
- CWE(s)
Related Threats
No named actor attribution yet. ATT&CK technique mapping in progress for this CVE.
Affected Assets
Mitigating Controls
Likely Mitigating Controls AI
Per-CVE control mapping for this CVE has not run yet; the list below is derived from the weakness types (CWEs) cited in the NVD entry.
Limiting concurrent sessions directly prevents uncontrolled resource consumption by capping the number of active sessions per user or account.
Contingency plan testing includes resource exhaustion scenarios to verify recovery, making it harder for attackers to sustain exploits that cause uncontrolled consumption.
Updated contingency plans include current procedures to detect, contain, and recover from resource exhaustion, limiting an attacker's ability to sustain impact from uncontrolled consumption.
Alternate site allows resumption of operations if resource exhaustion at the primary site is exploited to cause unavailability.
Alternate telecommunications services enable resumption of essential functions when primary services become unavailable due to uncontrolled resource consumption.
Planning and coordination of security activities (scans, tests, maintenance) directly imposes scheduling and throttling that prevents those activities from producing uncontrolled resource consumption.
Performance metrics and monitoring inherently track resource consumption patterns, making uncontrolled consumption easier to detect and mitigate.
Terminating idle connections bounds resource consumption that would otherwise allow uncontrolled accumulation of open sessions.