Skip to content

Puma used with Rails may lead to Information Exposure

High severity GitHub Reviewed Published Feb 11, 2022 in puma/puma • Updated Jul 13, 2023

Package

bundler puma (RubyGems)

Affected versions

>= 5.0.0, < 5.6.2
< 4.3.11

Patched versions

5.6.2
4.3.11

Description

Impact

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.

From Rails:

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.

The combination of these two behaviors (Puma not closing the body + Rails' Executor implementation) causes information leakage.

Patches

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.

See:
GHSA-wh98-p28r-vrc9
for details about the rails vulnerability

Upgrading to a patched Rails or Puma version fixes the vulnerability.

Workarounds

Upgrade to Rails versions 7.02.2, 6.1.4.6, 6.0.4.6, and 5.2.6.2.

The Rails CVE includes a middleware that can be used instead.

References

For more information

If you have any questions or comments about this advisory:

References

@nateberkopec nateberkopec published to puma/puma Feb 11, 2022
Published to the GitHub Advisory Database Feb 11, 2022
Reviewed Feb 11, 2022
Published by the National Vulnerability Database Feb 11, 2022
Last updated Jul 13, 2023

Severity

High
8.0
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
High
Privileges required
None
User interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:N

CVE ID

CVE-2022-23634

GHSA ID

GHSA-rmj8-8hhh-gv5h

Source code

Credits

Checking history
See something to contribute? Suggest improvements for this vulnerability.