{"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.50857,"ingestedAt":"2026-07-03T18:53:52.436Z","slug":"CVE-2026-22860","body":"## Overview\n\nRack 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.\n\n## Affected\n\n- `rack < 2.2.22`\n- `rack >= 3.0.0, < 3.1.20`\n- `rack >= 3.2.0, < 3.2.5`\n\n## Remediation\n\nUpgrade past the affected range:\n\n- `rack 3.2.5`","depth":"twilight","depthScore":41,"depthScoreParts":{"impact":41.3,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}