Information Exposure when using Puma with Rails
Description
Puma is a Ruby/Rack web server built for parallelism. Prior to puma version 5.6.2, puma may not always call close on the response body. Rails, prior to version 7.0.2.2, depended on the response body being closed in order for its CurrentAttributes implementation to work correctly. The combination of these two behaviors (Puma not closing the body + Rails' Executor implementation) causes information leakage. This problem is fixed in Puma versions 5.6.2 and 4.3.11. This problem is fixed in Rails versions 7.02.2, 6.1.4.6, 6.0.4.6, and 5.2.6.2. Upgrading to a patched Rails _or_ Puma version fixes the vulnerability.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Puma and Rails vulnerability where incomplete response body closing can lead to information leakage between requests.
Vulnerability
Puma, a Ruby web server, prior to versions 5.6.2 and 4.3.11, does not always call close on the response body [1]. Rails, prior to versions 7.0.2.2, 6.1.4.6, 6.0.4.6, and 5.2.6.2, depends on the response body being closed for CurrentAttributes to work correctly [3]. When Puma fails to close the response body, Rails' ActionDispatch::Executor does not reset thread local state, potentially leaking data between requests [3].
Exploitation
An attacker can repeatedly send requests to a vulnerable application, leveraging the race condition or timing of response body handling to access thread local state from previous requests. No authentication is required beyond normal network access.
Impact
Successful exploitation results in information leakage, where sensitive data from one request may be exposed in subsequent responses. This could include personal data, session tokens, or other attributes stored in CurrentAttributes [1][3].
Mitigation
Fixed versions are available: Puma 5.6.2 and 4.3.11, and Rails 7.0.2.2, 6.1.4.6, 6.0.4.6, and 5.2.6.2 [1][3]. Upgrading either Puma or Rails to a patched version resolves the vulnerability. No workaround is necessary beyond updating.
AI Insight generated on May 21, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
pumaRubyGems | >= 5.0.0, < 5.6.2 | 5.6.2 |
pumaRubyGems | < 4.3.11 | 4.3.11 |
Affected products
10- ghsa-coords9 versionspkg:gem/pumapkg:rpm/opensuse/ruby3.2-rubygem-puma&distro=openSUSE%20Tumbleweedpkg:rpm/opensuse/rubygem-puma&distro=openSUSE%20Leap%2015.3pkg:rpm/opensuse/rubygem-puma&distro=openSUSE%20Leap%2015.4pkg:rpm/opensuse/rubygem-puma&distro=openSUSE%20Tumbleweedpkg:rpm/suse/rubygem-puma&distro=SUSE%20Linux%20Enterprise%20High%20Availability%20Extension%2015pkg:rpm/suse/rubygem-puma&distro=SUSE%20Linux%20Enterprise%20High%20Availability%20Extension%2015%20SP1pkg:rpm/suse/rubygem-puma&distro=SUSE%20Linux%20Enterprise%20High%20Availability%20Extension%2015%20SP2pkg:rpm/suse/rubygem-puma&distro=SUSE%20Linux%20Enterprise%20High%20Availability%20Extension%2015%20SP3
>= 5.0.0, < 5.6.2+ 8 more
- (no CPE)range: >= 5.0.0, < 5.6.2
- (no CPE)range: < 6.0.0-2.1
- (no CPE)range: < 4.3.11-150000.3.6.2
- (no CPE)range: < 4.3.11-150000.3.6.2
- (no CPE)range: < 5.6.2-1.1
- (no CPE)range: < 4.3.11-150000.3.6.2
- (no CPE)range: < 4.3.11-150000.3.6.2
- (no CPE)range: < 4.3.11-150000.3.6.2
- (no CPE)range: < 4.3.11-150000.3.6.2
- puma/pumav5Range: >= 5.0.0, < 5.6.2
Patches
1b70f451fe8abEnsure `close` is called on the response body no matter what
1 file changed · +10 −5
lib/puma/request.rb+10 −5 modified@@ -171,11 +171,16 @@ def handle_request(client, lines, requests) end ensure - uncork_socket io - - body.close - client.tempfile.unlink if client.tempfile - res_body.close if res_body.respond_to? :close + begin + uncork_socket io + + body.close + client.tempfile.unlink if client.tempfile + ensure + # Whatever happens, we MUST call `close` on the response body. + # Otherwise Rack::BodyProxy callbacks may not fire and lead to various state leaks + res_body.close if res_body.respond_to? :close + end after_reply.each { |o| o.call } end
Vulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
17- github.com/advisories/GHSA-rmj8-8hhh-gv5hghsax_refsource_MISCADVISORY
- github.com/advisories/GHSA-wh98-p28r-vrc9ghsax_refsource_MISCADVISORY
- lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/F6YWGIIKL7KKTS3ZOAYMYPC7D6WQ5OA5/mitrevendor-advisoryx_refsource_FEDORA
- lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/L7NESIBFCNSR3XH7LXDPKVMSUBNUB43G/mitrevendor-advisoryx_refsource_FEDORA
- lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/TUBFJ44NCKJ34LECZRAP4N5VL6USJSIB/mitrevendor-advisoryx_refsource_FEDORA
- nvd.nist.gov/vuln/detail/CVE-2022-23634ghsaADVISORY
- security.gentoo.org/glsa/202208-28ghsavendor-advisoryx_refsource_GENTOOWEB
- www.debian.org/security/2022/dsa-5146ghsavendor-advisoryx_refsource_DEBIANWEB
- github.com/puma/puma/commit/b70f451fe8abc0cff192c065d549778452e155bbghsax_refsource_MISCWEB
- github.com/puma/puma/security/advisories/GHSA-rmj8-8hhh-gv5hghsax_refsource_CONFIRMWEB
- github.com/rubysec/ruby-advisory-db/blob/master/gems/puma/CVE-2022-23634.ymlghsaWEB
- groups.google.com/g/ruby-security-ann/c/FkTM-_7zSNA/m/K2RiMJBlBAAJghsax_refsource_MISCWEB
- lists.debian.org/debian-lts-announce/2022/05/msg00034.htmlghsamailing-listx_refsource_MLISTWEB
- lists.debian.org/debian-lts-announce/2022/08/msg00015.htmlghsamailing-listx_refsource_MLISTWEB
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/F6YWGIIKL7KKTS3ZOAYMYPC7D6WQ5OA5ghsaWEB
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/L7NESIBFCNSR3XH7LXDPKVMSUBNUB43GghsaWEB
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/TUBFJ44NCKJ34LECZRAP4N5VL6USJSIBghsaWEB
News mentions
0No linked articles in our index yet.