---
id: CVE-2026-100657
title: >-
  Netty's STOMP codec (io.netty:netty-codec-stomp) contains a ByteBuf leak in
  StompSubframeDecoder
summary: >-
  Netty's STOMP codec (io.netty:netty-codec-stomp) contains a ByteBuf leak in
  StompSubframeDecoder. Once a frame's declared content-length has been fully
  read, the decoder allocates a chunk buffer from the channel allocator and
  parks it in…
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'
cwe:
  - CWE-772
vendor: netty
product: netty
affected:
  - netty < 4.1.138.Final
  - netty >= 4.2.0.Final < 4.2.18.Final
published: '2026-09-26'
updated: '2026-09-26'
sourceUpdated: '2026-09-26T14:16:48.540'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-100657'
references:
  - url: 'https://github.com/netty/netty/security/advisories/GHSA-ghg5-c4jg-8q5j'
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/netty-before-4.1.138-final-bytebuf-leak-in-stompsubframedecoder
    label: disclosure@vulncheck.com
tags:
  - nvd
  - cve.org
ingestedAt: '2026-09-26T13:33:20.917Z'
---

## Overview

Netty's STOMP codec (io.netty:netty-codec-stomp) contains a ByteBuf leak in StompSubframeDecoder. Once a frame's declared content-length has been fully read, the decoder allocates a chunk buffer from the channel allocator and parks it in an instance field while waiting for the single NUL byte that terminates the frame. If that byte never arrives, the buffer is never released: the replay Signal thrown by skipNullCharacter extends Error rather than Exception, so the decoder's catch(Exception) release path does not run, and StompSubframeDecoder overrides neither handlerRemoved0 nor channelInactive, so the buffer also survives channel teardown. A remote peer can leak one allocator buffer per connection by sending a complete, well-formed frame body and withholding its terminating NUL byte; with the default pooled allocator the memory is never returned to the pool or reclaimed by garbage collection, so the leak accumulates for the lifetime of the process and can lead to memory exhaustion. This affects versions up to and including 4.1.137.Final and versions 4.2.0.Final through 4.2.17.Final; it is fixed in 4.1.138.Final and 4.2.18.Final.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
