CVE-2023-36478

Aliases:GHSA-wgh7-54f2-x98rBIT-jenkins-2023-36478
Advisory lineage Upstream: 0 Downstream: 5
Modified
Published: 10 Oct 2023, 16:53
Last modified:13 Feb 2025, 16:56

Vulnerability Summary

Overall Risk (default)
medium
40/100
CVSS Score
7.5 HIGH
v3.1 (cve.org)
EPSS Score
1.8% LOW
2% probability +0.34%
KEV
Not listed
Ransomware
No reports
Public exploits
1 found
Dark Web
Not detected

Timeline

10 Oct 2023, 16:53
Published
Vulnerability first disclosed
13 Feb 2025, 16:56
Last Modified
Vulnerability information updated

Description

Eclipse Jetty provides a web server and servlet container. In versions 11.0.0 through 11.0.15, 10.0.0 through 10.0.15, and 9.0.0 through 9.4.52, an integer overflow in `MetaDataBuilder.checkSize` allows for HTTP/2 HPACK header values to exceed their size limit. `MetaDataBuilder.java` determines if a header name or value exceeds the size limit, and throws an exception if the limit is exceeded. However, when length is very large and huffman is true, the multiplication by 4 in line 295 will overflow, and length will become negative. `(_size+length)` will now be negative, and the check on line 296 will not be triggered. Furthermore, `MetaDataBuilder.checkSize` allows for user-entered HPACK header value sizes to be negative, potentially leading to a very large buffer allocation later on when the user-entered size is multiplied by 2. This means that if a user provides a negative length value (or, more precisely, a length value which, when multiplied by the 4/3 fudge factor, is negative), and this length value is a very large positive number when multiplied by 2, then the user can cause a very large buffer to be allocated on the server. Users of HTTP/2 can be impacted by a remote denial of service attack. The issue has been fixed in versions 11.0.16, 10.0.16, and 9.4.53. There are no known workarounds.

CVSS Metrics

  • v3.1HIGHScore: 7.5CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

EPSS Trends

Current EPSS score: 1.80% Percentile: 83%

Techniques & Countermeasures

  • CWE-190Integer Overflow or Wraparound

    The product performs a calculation that can produce an integer overflow or wraparound when the logic assumes that the resulting value will always be larger than the original value. This occurs when an integer value is incremented to a value that is too large to store in the associated representation. When this occurs, the value may become a very small or negative number.

  • CWE-400Uncontrolled Resource Consumption

    The product does not properly control the allocation and maintenance of a limited resource.

Affected Systems

  • debiandebian_linux

    10.0 | 11.0 | 12.0

  • eclipsejetty

    ≥ 9.3.0, < 9.4.53 | ≥ 10.0.0, < 10.0.16 | ≥ 11.0.0, < 11.0.16

  • eclipsejetty.project

    ≥ 10.0.0, < 10.0.16 | ≥ 11.0.0, < 11.0.16 | ≥ 9.3.0, < 9.4.53

  • UnknownJenkins

    < 2.414.3 | < 2.428

  • org.eclipse.jetty.http2http2-hpack

    ≥ 10.0.0, < 10.0.16 | ≥ 11.0.0, < 11.0.16 | ≥ 9.3.0, < 9.4.53

  • org.eclipse.jetty.http3http3-qpack

    ≥ 10.0.0, < 10.0.16 | ≥ 11.0.0, < 11.0.16

References (15)