Bug 1940613 (CVE-2021-27292) - CVE-2021-27292 nodejs-ua-parser-js: ReDoS via malicious User-Agent header
Summary: CVE-2021-27292 nodejs-ua-parser-js: ReDoS via malicious User-Agent header
Keywords:
Status: CLOSED ERRATA
Alias: CVE-2021-27292
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 1941718 1941719 1941720 1880981 1941643 1941644 1941715 1941716 1941717 1941838 1941839 1942019 1943995 1943996 1944182
Blocks: 1940615
TreeView+ depends on / blocked
 
Reported: 2021-03-18 17:56 UTC by Guilherme de Almeida Suckevicz
Modified: 2023-08-31 23:46 UTC (History)
42 users (show)

Fixed In Version: ua-parser-js 0.7.24
Clone Of:
Environment:
Last Closed: 2021-07-28 01:07:01 UTC
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2021:2438 0 None None None 2021-07-27 22:32:03 UTC
Red Hat Product Errata RHSA-2021:3016 0 None None None 2021-08-06 00:50:36 UTC
Red Hat Product Errata RHSA-2021:3024 0 None None None 2021-08-09 07:29:03 UTC
Red Hat Product Errata RHSA-2022:0226 0 None None None 2022-01-20 21:39:19 UTC
Red Hat Product Errata RHSA-2022:0227 0 None None None 2022-01-20 21:40:43 UTC
Red Hat Product Errata RHSA-2022:0230 0 None None None 2022-01-21 19:05:11 UTC

Description Guilherme de Almeida Suckevicz 2021-03-18 17:56:49 UTC
ua-parser-js >= 0.7.14, fixed in 0.7.24, uses a regular expression which is vulnerable to denial of service. If an attacker sends a malicious User-Agent header, ua-parser-js will get stuck processing it for an extended period of time.

Reference:
https://gist.github.com/b-c-ds/6941d80d6b4e694df4bc269493b7be76

Upstream patch:
https://github.com/faisalman/ua-parser-js/commit/809439e20e273ce0d25c1d04e111dcf6011eb566

Comment 2 Mark Cooper 2021-03-22 13:41:07 UTC
Dang, the upstream fix was already there. 

Briefly: 

Jaeger 
 - depends on ua-parser-js v0.7.19 hoisted from: `"_project_#jaeger-ui#recompose#fbjs" depends on it`

OpenShift ServiceMesh
 - grafana: does not webpack ua-parser-js into the final container (grep the source map/js files for UAParser), and hence is not affected
 - prometheus: v0.7.20, still uses the legacy ui but the ui is still accessible thru new/graph. However I don't think it's getting packaged as part of the webpack, will confirm in that bug. 

OCP
 - prometheus: v2.23.0 doesn't have the ua-parser-js dep
 - grafana: same as servicemesh, doesn't webpack in ua-parser-js
 - kibana: is a dep and the container is v0.7.18, rpm is actually 0.7.19
 - presto: there is a UI packaged under presto-main (presto-main-328.0.0.redhat-00001.jar) which is hoisted: `"react-dom#fbjs" depends on it`, and is v0.7.18

Comment 3 Mark Cooper 2021-03-22 13:41:11 UTC
External References:

https://gist.github.com/b-c-ds/6941d80d6b4e694df4bc269493b7be76

Comment 24 Mark Cooper 2021-03-29 01:39:35 UTC
Statement:

While some components do package a vulnerable version of ua-parser-js, access to them requires OpenShift OAuth credentials and hence have been marked with a Low impact. This applies to the following products:
  - OpenShift Container Platform (OCP)
  - OpenShift ServiceMesh (OSSM) 
  - Red Hat OpenShift Jaeger (RHOSJ)
  - Red Hat OpenShift Logging

The OCP presto-container does ship the vulnerable component, however since OCP 4.6 the Metering product has been deprecated [1], set as wont-fix and may be fixed in a future release.

Red Hat Advanced Cluster Management for Kubernetes (RHACM) ships graphql-tools that pulls 0.7.23 version of ua-parser-js that uses the affected code.

[1] - https://access.redhat.com/solutions/5707561

Comment 25 Mark Cooper 2021-03-29 01:58:40 UTC
For OCP, unless we can find a reliable way to get webpack to tell us what it being bundled we're going to rely on yarn list --prod or npm list --prod, and leave the final decision to engineering.

Means for this CVE, all grafana containers (except for 3.11) we're marking affected as yarn list --prod is identifying that the ua-parser-js is in use. This also applies for openshift-enterprise-contsole-container.

Comment 33 errata-xmlrpc 2021-07-27 22:32:03 UTC
This issue has been addressed in the following products:

  Red Hat OpenShift Container Platform 4.8

Via RHSA-2021:2438 https://access.redhat.com/errata/RHSA-2021:2438

Comment 34 Product Security DevOps Team 2021-07-28 01:07:01 UTC
This bug is now closed. Further updates for individual products will be reflected on the CVE page(s):

https://access.redhat.com/security/cve/cve-2021-27292

Comment 35 errata-xmlrpc 2021-08-06 00:50:33 UTC
This issue has been addressed in the following products:

  Red Hat Advanced Cluster Management for Kubernetes 2.3 for RHEL 7
  Red Hat Advanced Cluster Management for Kubernetes 2.3 for RHEL 8

Via RHSA-2021:3016 https://access.redhat.com/errata/RHSA-2021:3016

Comment 36 errata-xmlrpc 2021-08-09 07:28:59 UTC
This issue has been addressed in the following products:

  Red Hat OpenShift Jaeger 1.24

Via RHSA-2021:3024 https://access.redhat.com/errata/RHSA-2021:3024

Comment 40 errata-xmlrpc 2022-01-20 21:39:16 UTC
This issue has been addressed in the following products:

  OpenShift Logging 5.1

Via RHSA-2022:0226 https://access.redhat.com/errata/RHSA-2022:0226

Comment 41 errata-xmlrpc 2022-01-20 21:40:40 UTC
This issue has been addressed in the following products:

  OpenShift Logging 5.3

Via RHSA-2022:0227 https://access.redhat.com/errata/RHSA-2022:0227

Comment 42 errata-xmlrpc 2022-01-21 19:05:08 UTC
This issue has been addressed in the following products:

  OpenShift Logging 5.2

Via RHSA-2022:0230 https://access.redhat.com/errata/RHSA-2022:0230


Note You need to log in before you can comment on or make changes to this bug.