2026-09-26 13:23CVE-2026-100656VulnCheck
PUBLISHED5.2CWE-770

Netty HttpServerCodec Unbounded Queue Growth via HTTP/1.1 Pipelining

Netty (io.netty:netty-codec-http) contains an unbounded per-connection queue growth flaw in HttpServerCodec. The codec tracks the HTTP method of each still-unanswered pipelined request; the first 32 entries are bit-packed into a single long, but every additional entry is appended to methodOverflowQueue, an ArrayDeque with no size limit and no rejection path. A remote, unauthenticated attacker who pipelines HTTP/1.1 requests on a single connection while withholding reads on their own end (preventing responses from being flushed) can grow this queue without bound, causing unbounded heap growth and denial of service. Affected versions are 4.2.0.Final through 4.2.17.Final and all releases up to and including 4.1.137.Final; the issue is fixed in 4.2.18.Final and 4.1.138.Final.

Problem type

Affected products

netty

netty

< 4.2.18.Final - AFFECTED

4.2.18.Final - UNAFFECTED

netty

< 4.1.138.Final - AFFECTED

4.1.138.Final - UNAFFECTED

netty

< 4.1.138.Final - AFFECTED

4.1.138.Final - UNAFFECTED

References

GitHub Security Advisories

GHSA-g3wj-wqf3-65v6

Netty (io.netty:netty-codec-http) contains an unbounded per-connection queue growth flaw in...

https://github.com/advisories/GHSA-g3wj-wqf3-65v6

Netty (io.netty:netty-codec-http) contains an unbounded per-connection queue growth flaw in HttpServerCodec. The codec tracks the HTTP method of each still-unanswered pipelined request; the first 32 entries are bit-packed into a single long, but every additional entry is appended to methodOverflowQueue, an ArrayDeque with no size limit and no rejection path. A remote, unauthenticated attacker who pipelines HTTP/1.1 requests on a single connection while withholding reads on their own end (preventing responses from being flushed) can grow this queue without bound, causing unbounded heap growth and denial of service. Affected versions are 4.2.0.Final through 4.2.17.Final and all releases up to and including 4.1.137.Final; the issue is fixed in 4.2.18.Final and 4.1.138.Final.

JSON source

https://cveawg.mitre.org/api/cve/CVE-2026-100656
Click to expand
{
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "cveMetadata": {
    "cveId": "CVE-2026-100656",
    "assignerOrgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
    "assignerShortName": "VulnCheck",
    "dateUpdated": "2026-09-27T16:27:43.904Z",
    "dateReserved": "2026-09-26T02:33:59.038Z",
    "datePublished": "2026-09-26T13:23:24.703Z",
    "state": "PUBLISHED"
  },
  "containers": {
    "cna": {
      "providerMetadata": {
        "orgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
        "shortName": "VulnCheck",
        "dateUpdated": "2026-09-27T16:27:43.904Z"
      },
      "datePublic": "2026-09-10T00:00:00.000Z",
      "title": "Netty HttpServerCodec Unbounded Queue Growth via HTTP/1.1 Pipelining",
      "descriptions": [
        {
          "lang": "en",
          "value": "Netty (io.netty:netty-codec-http) contains an unbounded per-connection queue growth flaw in HttpServerCodec. The codec tracks the HTTP method of each still-unanswered pipelined request; the first 32 entries are bit-packed into a single long, but every additional entry is appended to methodOverflowQueue, an ArrayDeque with no size limit and no rejection path. A remote, unauthenticated attacker who pipelines HTTP/1.1 requests on a single connection while withholding reads on their own end (preventing responses from being flushed) can grow this queue without bound, causing unbounded heap growth and denial of service. Affected versions are 4.2.0.Final through 4.2.17.Final and all releases up to and including 4.1.137.Final; the issue is fixed in 4.2.18.Final and 4.1.138.Final."
        }
      ],
      "affected": [
        {
          "vendor": "netty",
          "product": "netty",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "4.2.0.Final",
              "status": "affected",
              "versionType": "custom",
              "lessThan": "4.2.18.Final"
            },
            {
              "version": "4.2.18.Final",
              "status": "unaffected",
              "versionType": "custom"
            }
          ]
        },
        {
          "vendor": "netty",
          "product": "netty",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "0",
              "status": "affected",
              "versionType": "custom",
              "lessThan": "4.1.138.Final"
            },
            {
              "version": "4.1.138.Final",
              "status": "unaffected",
              "versionType": "custom"
            }
          ]
        },
        {
          "vendor": "netty",
          "product": "netty",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "0",
              "status": "affected",
              "versionType": "custom",
              "lessThan": "4.1.138.Final"
            },
            {
              "version": "4.1.138.Final",
              "status": "unaffected",
              "versionType": "custom"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "lang": "en",
              "description": "Allocation of Resources Without Limits or Throttling",
              "cweId": "CWE-770",
              "type": "CWE"
            }
          ]
        }
      ],
      "references": [
        {
          "url": "https://github.com/netty/netty/security/advisories/GHSA-pvjx-v7vp-62vq",
          "name": "GitHub Security Advisory (GHSA-pvjx-v7vp-62vq)",
          "tags": [
            "vendor-advisory"
          ]
        },
        {
          "url": "https://www.vulncheck.com/advisories/netty-httpservercodec-unbounded-queue-growth-via-http-1.1-pipelining",
          "name": "VulnCheck Advisory: Netty HttpServerCodec Unbounded Queue Growth via HTTP/1.1 Pipelining",
          "tags": [
            "third-party-advisory"
          ]
        }
      ],
      "metrics": [
        {
          "format": "CVSS"
        },
        {
          "format": "CVSS",
          "cvssV3_1": {
            "version": "3.1",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
            "attackVector": "NETWORK",
            "attackComplexity": "LOW",
            "privilegesRequired": "NONE",
            "userInteraction": "NONE",
            "scope": "UNCHANGED",
            "confidentialityImpact": "NONE",
            "integrityImpact": "NONE",
            "availabilityImpact": "HIGH",
            "baseScore": 7.5,
            "baseSeverity": "HIGH"
          }
        }
      ],
      "credits": [
        {
          "lang": "en",
          "value": "sonicnew",
          "type": "reporter"
        },
        {
          "lang": "en",
          "value": "Michael-JRead",
          "type": "reporter"
        },
        {
          "lang": "en",
          "value": "chriswnowak",
          "type": "analyst"
        },
        {
          "lang": "en",
          "value": "Thomas-Read",
          "type": "analyst"
        }
      ]
    }
  }
}