Cyber Resilience

CVE-2026-34785

Info Disclosure in Rack ≤ 2.2.23

Published
02 April 2026
Modified
24 July 2026
Patch / advisory
CVSS Score v3.1 7.5
Click a component to see what it means
Raw vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
EPSS Score 0.0039 32th percentile
Risk Priority 57 floored blend · peak EPSS

Summary

CVE-2026-34785 is a high-severity Partial String Comparison (CWE-187) vulnerability in Rack Rack. Its CVSS base score is 7.5 (High).

Operationally, exploitation aligns with the MITRE ATT&CK technique Data from Local System (T1005); ranked at the 32th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.

The strongest mitigations our analysis identified map to AC-3 (Access Enforcement) and AC-4 (Information Flow Enforcement) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-34785 is a vulnerability in Rack, a modular Ruby web server interface, specifically affecting the Rack::Static component in versions prior to 2.2.23, 3.1.21, and 3.2.6. Rack::Static uses a simple string prefix check to determine whether a request should be served as a static file. When configured with URL prefixes such as "/css", this check matches any request path beginning with that string, including unrelated paths like "/css-config.env" or "/css-backup.sql". As a result, files under the static root whose names share the configured prefix may be served unintentionally, leading to information disclosure.

Unauthenticated remote attackers can exploit this vulnerability by sending crafted HTTP requests to paths that match the configured prefix but target sensitive files in the static root directory. Successful exploitation requires network access and low complexity, with no privileges or user interaction needed. The CVSS v3.1 base score is 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N), indicating high confidentiality impact with no integrity or availability disruption. The issue maps to CWE-187 (Partial Evaluation of Regular Expression) and CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor).

The vulnerability has been patched in Rack versions 2.2.23, 3.1.21, and 3.2.6. Security practitioners should upgrade to these fixed releases. Additional details are available in the GitHub security advisory at https://github.com/rack/rack/security/advisories/GHSA-h2jq-g4cq-5ppq.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

Rack is a modular Ruby web server interface. Prior to versions 2.2.23, 3.1.21, and 3.2.6, Rack::Static determines whether a request should be served as a static file using a simple string prefix check. When configured with URL prefixes such as…

more

"/css", it matches any request path that begins with that string, including unrelated paths such as "/css-config.env" or "/css-backup.sql". As a result, files under the static root whose names merely share the configured prefix may be served unintentionally, leading to information disclosure. This issue has been patched in versions 2.2.23, 3.1.21, and 3.2.6.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1005 Data from Local System Collection
Adversaries may search local system sources, such as file systems, configuration files, local databases, virtual machine files, or process memory, to find files of interest and sensitive data prior to Exfiltration.
T1039 Data from Network Shared Drive Collection
Adversaries may search network shares on computers they have compromised to find files of interest.
T1119 Automated Collection Collection
Once established within a system or network, an adversary may use automated techniques for collecting internal data.
T1134.001 Token Impersonation/Theft Stealth
Adversaries may duplicate then impersonate another user's existing token to escalate privileges and bypass access controls.
T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
T1212 Exploitation for Credential Access Credential Access
Adversaries may exploit software vulnerabilities in an attempt to collect credentials.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2025-61780Same product: Rack Rack
CVE-2026-22860Same product: Rack Rack
CVE-2025-27610Same product: Rack Rack
CVE-2026-25500Same product: Rack Rack
CVE-2026-34831Same product: Rack Rack
CVE-2025-32441Same product: Rack Rack
CVE-2026-34835Same product: Rack Rack
CVE-2026-34763Same product: Rack Rack
CVE-2026-34830Same product: Rack Rack
CVE-2026-32762Same product: Rack Rack

Affected Assets

rack
rack
≤ 2.2.23 · 3.0.0 — 3.1.21 · 3.2.0 — 3.2.6

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)
  • 12 hardening rules · 8 OS baselines
Validate
Prove the fix (OWASP ASVS)
  • V10.4.1
  • V10.4.9
  • V11.7.1
  • V14.1.2

Mitigating Controls (NIST 800-53 r5) AI

Access enforcement directly stops unauthorized actors from obtaining sensitive information.

Information flow enforcement structurally prevents sensitive data from reaching unauthorized recipients.

Protection of information at rest prevents unauthorized exposure of stored sensitive data.

Transmission confidentiality mechanisms stop exposure of sensitive data on the wire.

Least privilege reduces the set of actors who can reach sensitive information.

Developer testing and evaluation can discover incomplete string comparisons through targeted test cases.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.AA-05 mostly match
prevents

PR.AA-05 directly enforces least-privilege authorization that blocks most unauthorized disclosures, yet CWE-200 also arises from logging, error messages, and side-channel paths that access controls alone do not address.

PR.DS-10 mostly match
prevents

PR.DS-10 mostly prevents CWE-200 by directly eliminating unauthorized access to sensitive data-in-use, yet only partially addresses the weakness because CWE-200 spans many other exposure vectors outside runtime protection.

PR.IR-01 mostly match
prevents

PR.IR-01's segmentation/zero-trust controls largely eliminate network-level unauthorized access paths that enable exposure, yet CWE-200 spans many additional vectors (API responses, logs, app logic) that network controls alone cannot close.

PR.PS-06 mostly match
prevents

Secure SDLC practices directly prevent unsafe string comparisons by enforcing proper API usage and testing.

ID.RA-01 partial match
prevents

Vulnerability identification processes can discover partial-comparison flaws during code or binary analysis.

PR.AA-01 partial match
prevents

PR.AA-01 supplies proper credential lifecycle controls that reduce unauthorized access paths, yet leaves many other exposure vectors (error messages, logging, side channels, etc.) unaddressed.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

prevents

Restricting anonymous or unknown access and encrypting high-value information limits the exposure of sensitive data that would otherwise be obtainable by unauthorized actors.

prevents

Suppressing system details, error specifics, and previous log-on information until successful authentication reduces the information an unauthenticated attacker can gather.

prevents

By requiring owners to assign sensitivity labels and corresponding handling rules, the control ensures that information is not left unmarked and therefore reduces the chance that sensitive data will be exposed to unauthorized actors.

prevents

Requiring encryption, access controls, and recipient authentication for transfers directly reduces the chance that sensitive data reaches an unauthorized observer.

prevents

Secure delivery, protected storage, and confidentiality of allocation records limit exposure of authentication material to unauthorized observers.

prevents

Requiring defined procedures, assigned roles, and technical/organizational measures for handling PII reduces the chance that sensitive personal data will be exposed to unauthorized actors through inadequate handling or missing safeguards.

Hardening callouts derived

Configuration rules from DISA STIG baselines that bear on weaknesses of the type cited by this CVE. Each rule is shown with the relationship its mapping actually records, against the CWE it was authored against. Derived via CVE→CWE over `controls_xwalks` (authoritative rows only; rows rated `none` are excluded).

Oracle Linux 8 (2 rules)
  • V-248579 OL 8 must restrict access to the kernel message buffer. prevents CWE-552
  • V-248597 There must be no "shosts.equiv" files on the OL 8 operating system. prevents CWE-552
Ubuntu 22.04 (1 rule)
  • V-260470 Ubuntu 22.04 LTS, when booted, must require authentication upon booting into single-user and maintenance modes. prevents CWE-200
Ubuntu 24.04 (2 rules)
  • V-270647 Ubuntu 24.04 LTS must not have the telnet package installed. prevents CWE-200
  • V-270675 Ubuntu 24.04 LTS when booted must require authentication upon booting into single-user and maintenance modes. prevents CWE-200
Windows 10 (1 rule)
  • V-220737 Administrative accounts must not be used with applications that access the Internet, such as web browsers, or with potential Internet sources, such as email. prevents CWE-200
Windows Server 2016 (1 rule)
  • V-224974 Domain-created Active Directory Organizational Unit (OU) objects must have proper access control permissions. prevents CWE-200
Windows Server 2019 (1 rule)
  • V-205743 Windows Server 2019 organization created Active Directory Organizational Unit (OU) objects must have proper access control permissions. prevents CWE-200
Windows Server 2022 (1 rule)
  • V-254395 Windows Server 2022 organization created Active Directory Organizational Unit (OU) objects must have proper access control permissions. prevents CWE-200

References