{"schema_version":"1.7.3","id":"GHSA-rmj8-8hhh-gv5h","published":"2022-02-11T21:33:23Z","modified":"2026-02-04T04:40:25.385031Z","aliases":["CVE-2022-23634"],"related":["CVE-2022-23634"],"summary":"Puma used with Rails may lead to Information Exposure","details":"### Impact\nPrior 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.\n\nFrom Rails:\n\n> Under certain circumstances response bodies will not be closed, for example a bug in a webserver[1] or a bug in a Rack middleware. In the event a response is not notified of a close, ActionDispatch::Executor will not know to reset thread local state for the next request. This can lead to data being leaked to subsequent requests, especially when interacting with ActiveSupport::CurrentAttributes.\n\nThe combination of these two behaviors (Puma not closing the body + Rails' Executor implementation) causes information leakage.\n\n### Patches\nThis problem is fixed in Puma versions 5.6.2 and 4.3.11.\n\nThis problem is fixed in Rails versions 7.02.2, 6.1.4.6, 6.0.4.6, and 5.2.6.2.\n\nSee: \nhttps://github.com/advisories/GHSA-wh98-p28r-vrc9 \nfor details about the rails vulnerability\n\nUpgrading to a patched Rails _or_ Puma version fixes the vulnerability.\n\n### Workarounds\n\nUpgrade to Rails versions 7.02.2, 6.1.4.6, 6.0.4.6, and 5.2.6.2.\n\nThe [Rails CVE](https://groups.google.com/g/ruby-security-ann/c/FkTM-_7zSNA/m/K2RiMJBlBAAJ?utm_medium=email&utm_source=footer&pli=1) includes a middleware that can be used instead.\n\n### References\n\n* Rails CVE: [CVE-2022-23633](https://groups.google.com/g/ruby-security-ann/c/FkTM-_7zSNA/m/K2RiMJBlBAAJ?utm_medium=email&utm_source=footer&pli=1)\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Open an issue in [puma](https://github.com/puma/puma)\n* See our [security policy](https://github.com/puma/puma/security/policy)","affected":[{"package":{"name":"puma","ecosystem":"RubyGems","purl":"pkg:gem/puma"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.0.0"},{"fixed":"5.6.2"}]}],"versions":["5.0.0","5.0.1","5.0.2","5.0.3","5.0.4","5.1.0","5.1.1","5.2.0","5.2.1","5.2.2","5.3.0","5.3.1","5.3.2","5.4.0","5.5.0","5.5.1","5.5.2","5.6.0","5.6.1"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/02/GHSA-rmj8-8hhh-gv5h/GHSA-rmj8-8hhh-gv5h.json"}},{"package":{"name":"puma","ecosystem":"RubyGems","purl":"pkg:gem/puma"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.3.11"}]}],"versions":["0.8.0","0.8.1","0.8.2","0.9.0","0.9.1","0.9.2","0.9.3","0.9.4","0.9.5","1.0.0","1.1.0","1.1.1","1.2.0","1.2.1","1.2.2","1.3.0","1.3.1","1.4.0","1.5.0","1.6.0","1.6.1","1.6.2","1.6.3","2.0.0","2.0.0.b1","2.0.0.b2","2.0.0.b3","2.0.0.b4","2.0.0.b5","2.0.0.b6","2.0.0.b7","2.0.1","2.1.0","2.1.1","2.10.0","2.10.1","2.10.2","2.11.0","2.11.1","2.11.2","2.11.3","2.12.0","2.12.1","2.12.2","2.12.3","2.13.0","2.13.1","2.13.2","2.13.3","2.13.4","2.14.0","2.15.0","2.15.1","2.15.2","2.15.3","2.16.0","2.2.0","2.2.1","2.2.2","2.3.0","2.3.1","2.3.2","2.4.0","2.4.1","2.5.0","2.5.1","2.6.0","2.7.0","2.7.1","2.8.0","2.8.1","2.8.2","2.9.0","2.9.1","2.9.2","3.0.0","3.0.0.rc1","3.0.1","3.0.2","3.1.0","3.1.1","3.10.0","3.11.0","3.11.1","3.11.2","3.11.3","3.11.4","3.12.0","3.12.1","3.12.2","3.12.4","3.12.5","3.12.6","3.2.0","3.3.0","3.4.0","3.5.0","3.5.1","3.5.2","3.6.0","3.6.1","3.6.2","3.7.0","3.7.1","3.8.0","3.8.1","3.8.2","3.9.0","3.9.1","4.0.0","4.0.1","4.1.0","4.1.1","4.2.0","4.2.1","4.3.0","4.3.1","4.3.10","4.3.3","4.3.4","4.3.5","4.3.6","4.3.7","4.3.8","4.3.9"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/02/GHSA-rmj8-8hhh-gv5h/GHSA-rmj8-8hhh-gv5h.json"}}],"references":[{"type":"WEB","url":"https://github.com/puma/puma/security/advisories/GHSA-rmj8-8hhh-gv5h"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2022-23634"},{"type":"WEB","url":"https://github.com/puma/puma/commit/b70f451fe8abc0cff192c065d549778452e155bb"},{"type":"ADVISORY","url":"https://github.com/advisories/GHSA-rmj8-8hhh-gv5h"},{"type":"ADVISORY","url":"https://github.com/advisories/GHSA-wh98-p28r-vrc9"},{"type":"PACKAGE","url":"https://github.com/puma/puma"},{"type":"WEB","url":"https://github.com/rubysec/ruby-advisory-db/blob/master/gems/puma/CVE-2022-23634.yml"},{"type":"WEB","url":"https://groups.google.com/g/ruby-security-ann/c/FkTM-_7zSNA/m/K2RiMJBlBAAJ?utm_medium=email&utm_source=footer&pli=1"},{"type":"WEB","url":"https://lists.debian.org/debian-lts-announce/2022/05/msg00034.html"},{"type":"WEB","url":"https://lists.debian.org/debian-lts-announce/2022/08/msg00015.html"},{"type":"WEB","url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/F6YWGIIKL7KKTS3ZOAYMYPC7D6WQ5OA5"},{"type":"WEB","url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/L7NESIBFCNSR3XH7LXDPKVMSUBNUB43G"},{"type":"WEB","url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/TUBFJ44NCKJ34LECZRAP4N5VL6USJSIB"},{"type":"WEB","url":"https://security.gentoo.org/glsa/202208-28"},{"type":"WEB","url":"https://www.debian.org/security/2022/dsa-5146"}],"database_specific":{"cwe_ids":["CWE-200","CWE-404"],"github_reviewed":true,"github_reviewed_at":"2022-02-11T21:33:23Z","nvd_published_at":"2022-02-11T22:15:00Z","severity":"HIGH"},"severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:N"}]}