Lucene search

K
rubygemsRubySecRUBY:PUMA-2022-23634
HistoryFeb 10, 2022 - 9:00 p.m.

Information Exposure with Puma when used with Rails

2022-02-1021:00:00
RubySec
github.com
13
puma
rails
information exposure
vulnerability
patch
upgrade
workaround
security advisory

CVSS2

4.3

Attack Vector

NETWORK

Attack Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

PARTIAL

Integrity Impact

NONE

Availability Impact

NONE

AV:N/AC:M/Au:N/C:P/I:N/A:N

CVSS3

8

Attack Vector

NETWORK

Attack Complexity

HIGH

Privileges Required

NONE

User Interaction

REQUIRED

Scope

CHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

NONE

CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:N

EPSS

0.002

Percentile

57.6%

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: https://github.com/advisories/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.0.2.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.

Affected configurations

Vulners
Node
rubypumaRange4.3.04.3.11
OR
rubypumaRange5.6.2
VendorProductVersionCPE
rubypuma*cpe:2.3:a:ruby:puma:*:*:*:*:*:*:*:*

CVSS2

4.3

Attack Vector

NETWORK

Attack Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

PARTIAL

Integrity Impact

NONE

Availability Impact

NONE

AV:N/AC:M/Au:N/C:P/I:N/A:N

CVSS3

8

Attack Vector

NETWORK

Attack Complexity

HIGH

Privileges Required

NONE

User Interaction

REQUIRED

Scope

CHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

NONE

CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:N

EPSS

0.002

Percentile

57.6%