Bug 2526161

Summary: CVE-2026-5680 moditect: Undertow: Denial of Service via WebSocket permessage-deflate processing [fedora-all]
Product: [Fedora] Fedora Reporter: Abhishek Raj <abhraj>
Component: moditectAssignee: Marián Konček <mkoncek>
Status: NEW --- QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: rawhideCC: mizdebsk, mkoncek
Target Milestone: ---Keywords: Security, SecurityTracking
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: {"flaws": ["20ae90ee-a99b-4981-9719-36981c707de6"]}
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2455350    

Description Abhishek Raj 2026-08-31 08:17:57 UTC
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.

Summary:
Undertow’s PerMessageDeflateFunction.largerBuffer() uses exponential doubling

Requirements To Exploit:
Any application using Undertow’s WebSocket with permessage-deflate is

affected. This includes:

WildFly application server (uses Undertow as its web layer)

Red Hat JBoss Enterprise Application Platform (JBoss EAP)

Any standalone Undertow WebSocket application using

PerMessageDeflateHandshake

The vulnerability requires only a standard WebSocket connection with

permessage-deflate negotiated, no authentication, no special configuration.

Component Affected:
io.undertow:undertow-core

Version Affected:
Undertow 2.3.18.Final

Patch Available:
no

Version Fixed:
N/A

Cvss:
Score: 7.5 HIGH
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Impact:
IMPORTANT

Steps To Reproduce:
I have attached a self-contained Maven project (undertow-websocket-poc.tar.gz)

containing 6 tests:

Baselines:

Baseline 1a: Valid Origin -> upgrade accepted, message delivered

Baseline 1b: Invalid Origin -> HTTP 403 rejected

Mitigation:
Add a maxDecompressedBufferSize parameter to PerMessageDeflateHandshake

(e.g. default 10 MB) that limits the largerBuffer() growth

Add a maximum doubling count or absolute buffer cap in largerBuffer()

Add a maxDecompressionRatio check (reject if wire:decompressed > 100x)

Add a maxFragmentsPerMessage limit in WebSocketChannel

Add Ping rate limiting in WebSocketChannel before generating Pong

Expose these limits in the PerMessageDeflateHandshake constructor