# CVE-2026-34230: Rack inefficient algorithmic complexity in Rack::Utils.select_best_encoding

Source: https://junglewise.ai/threats/cve-2026-34230-rack-inefficient-algorithmic-complexity-in-rack-utils-select-best  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-04-02. Updated: 2026-07-24  
License: CC BY 4.0 with a link back

CVE-2026-34230 · Severity: high · CVSS 7.5 · Published 2026-04-02

Rack is a foundational software component used by many Ruby-based web applications to handle web requests. A flaw in how it processes certain web headers allows an unauthenticated attacker to send a specially crafted request that forces the server to consume excessive CPU resources. This can lead to a denial of service, making the web application slow or completely unresponsive to legitimate users.

Technologies: [rack (RubyGems)](https://junglewise.ai/threats/technologies/rack). Vendors: [RubyGems](https://junglewise.ai/threats/vendors/rubygems).

## Quick answers

**Is CVE-2026-34230 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-34230 being exploited in the wild.

**How severe is CVE-2026-34230?** High severity, with a CVSS score of 7.5, published 2 April 2026.

**Which products and versions are affected?** rack (RubyGems) ECOSYSTEM:introduced=0,fixed=2.2.23.

**Is there a fix for CVE-2026-34230?** Yes. rack (RubyGems): upgrade to 2.2.23 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-34230 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-34230?** Check whether you run rack (RubyGems) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- rack (RubyGems): upgrade to 2.2.23 or later

  ```sh
  bundle update rack
  ```


## Technical details

A denial of service vulnerability exists in Rack due to inefficient algorithmic complexity (CWE-407) in the `Rack::Utils.select_best_encoding` method. When processing the `Accept-Encoding` HTTP header, the method recomputes the set of available encodings for every wildcard (*) entry present in the header, resulting in quadratic time complexity. An unauthenticated remote attacker can exploit this by sending a single request with a large number of wildcard entries (e.g., 1,000 entries in an 8 KB header) to trigger disproportionate CPU consumption within the `Rack::Deflater` middleware. This issue is resolved in versions 2.2.23, 3.1.21, and 3.2.6.

## Affected products

- Rack Rack < 2.2.23, >= 3.0.0.beta1, < 3.1.21, >= 3.2.0, < 3.2.6

## Identifiers

- CVE-2026-34230
- GHSA-v569-hp3g-36wr

## Timeline

- 2026-04-01: advisory: GitHub Security Advisory published
- 2026-04-02: disclosed: NVD publication date

## References

- [https://github.com/rack/rack/security/advisories/GHSA-v569-hp3g-36wr](https://github.com/rack/rack/security/advisories/GHSA-v569-hp3g-36wr)

## Related threats

- [Rack multipart parser denial of service via unbounded scan buffer growth](https://junglewise.ai/threats/cve-2026-125111-rack-multipart-parsing-allows-dos-via-unbounded-scan-buffer)
- [Rack::Static header_rules bypass via dot-segment normalization mismatch](https://junglewise.ai/threats/cve-2026-125110-rack-rack-static-header-rules-bypass-via-dot-segment)
- [Rack host validation bypass via HTTP headers](https://junglewise.ai/threats/cve-2026-125109-rack-is-a-modular-ruby-web-server-interface-from-3-0-until-3-1)
- [Rack is a modular Ruby web server interface. Prior to 2.2.25, 3.1.23, and 3.2.8…](https://junglewise.ai/threats/cve-2026-125108-rack-multipart-boundary-ambiguity-guard-in-rack-multipart-parser)
- [Rack Rack::Request host allowlist bypass via Host header poisoning](https://junglewise.ai/threats/cve-2026-34835-rack-rack-request-host-allowlist-bypass-via-host-header-poisoning)
