---
id: CVE-2026-22860
title: Rack is a modular Ruby web server interface
summary: >-
  Rack is a modular Ruby web server interface. Prior to versions 2.2.22, 3.1.20,
  and 3.2.5, `Rack::Directory`’s path check used a string prefix match on the
  expanded path. A request like `/../root_example/` can escape the configured
  root i…
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'
cwe:
  - CWE-22
  - CWE-548
  - CWE-22
vendor: rack
product: rack
affected:
  - rack < 2.2.22
  - 'rack >= 3.0.0, < 3.1.20'
  - 'rack >= 3.2.0, < 3.2.5'
patched:
  - rack 3.2.5
published: '2026-02-18'
updated: '2026-06-30'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-22860'
references:
  - url: >-
      https://github.com/rack/rack/commit/75c5745c286637a8f049a33790c71237762069e7
    label: security-advisories@github.com
  - url: 'https://github.com/rack/rack/security/advisories/GHSA-mxw3-3hh2-x2mh'
    label: security-advisories@github.com
  - url: 'https://access.redhat.com/security/cve/CVE-2026-22860'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2440737'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-22860.json
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
tags:
  - nvd
epss: 0.00676
epssPercentile: 0.50117
ingestedAt: '2026-07-03T18:53:52.436Z'
---

## Overview

Rack is a modular Ruby web server interface. Prior to versions 2.2.22, 3.1.20, and 3.2.5, `Rack::Directory`’s path check used a string prefix match on the expanded path. A request like `/../root_example/` can escape the configured root if the target path starts with the root string, allowing directory listing outside the intended root. Versions 2.2.22, 3.1.20, and 3.2.5 fix the issue.

## Affected

- `rack < 2.2.22`
- `rack >= 3.0.0, < 3.1.20`
- `rack >= 3.2.0, < 3.2.5`

## Remediation

Upgrade past the affected range:

- `rack 3.2.5`
