CVE Vulnerabilities

CVE-2022-31129

Uncontrolled Resource Consumption

Published: Jul 06, 2022 | Modified: Nov 03, 2025
CVSS 3.x
7.5
HIGH
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS 2.x
5 MEDIUM
AV:N/AC:L/Au:N/C:N/I:N/A:P
RedHat/V2
RedHat/V3
7.5 IMPORTANT
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Ubuntu
MEDIUM
root.io logo minimus.io logo echo.ai logo

moment is a JavaScript date library for parsing, validating, manipulating, and formatting dates. Affected versions of moment were found to use an inefficient parsing algorithm. Specifically using string-to-date parsing in moment (more specifically rfc2822 parsing, which is tried by default) has quadratic (N^2) complexity on specific inputs. Users may notice a noticeable slowdown is observed with inputs above 10k characters. Users who pass user-provided strings without sanity length checks to moment constructor are vulnerable to (Re)DoS attacks. The problem is patched in 2.29.4, the patch can be applied to all affected versions with minimal tweaking. Users are advised to upgrade. Users unable to upgrade should consider limiting date lengths accepted from user input.

Weakness

The product does not properly control the allocation and maintenance of a limited resource.

Affected Software

NameVendorStart VersionEnd Version
MomentMomentjs2.18.0 (including)2.29.4 (excluding)
OpenShift Service Mesh 2.0RedHatopenshift-service-mesh/kiali-rhel8:1.24.16-1*
OpenShift Service Mesh 2.0RedHatservicemesh-prometheus-0:2.14.0-18.el8.1*
OpenShift Service Mesh 2.1RedHatopenshift-service-mesh/kiali-rhel8:1.36.12-1*
OpenShift Service Mesh 2.1RedHatservicemesh-prometheus-0:2.23.0-9.el8*
Red Hat Advanced Cluster Management for Kubernetes 2.3 for RHEL 8RedHatrhacm2/console-rhel8:v2.3.12-5*
Red Hat Ceph Storage 6.1RedHatceph-2:17.2.6-70.el9cp*
Red Hat Fuse 7.11.1RedHatmoment*
Red Hat Gluster Storage 3.5 for RHEL 7RedHatgrafana-0:5.2.4-6.el7rhgs*
Red Hat OpenShift Data Foundation 4.11 on RHEL8RedHatodf4/mcg-core-rhel8:v4.11.0-30*
Red Hat OpenShift Service Mesh 2.2 for RHEL 8RedHatopenshift-service-mesh/kiali-rhel8:1.48.2-1*
Red Hat Single Sign-On 7RedHatmoment*
Red Hat Single Sign-On 7.6 for RHEL 7RedHatrh-sso7-keycloak-0:18.0.6-1.redhat_00001.1.el7sso*
Red Hat Single Sign-On 7.6 for RHEL 8RedHatrh-sso7-keycloak-0:18.0.6-1.redhat_00001.1.el8sso*
Red Hat Single Sign-On 7.6 for RHEL 9RedHatrh-sso7-keycloak-0:18.0.6-1.redhat_00001.1.el9sso*
Red Hat Virtualization 4 for Red Hat Enterprise Linux 8RedHatcockpit-ovirt-0:0.16.2-1.el8ev*
Red Hat Virtualization Engine 4.4RedHatovirt-engine-ui-extensions-0:1.3.5-1.el8ev*
RHEL-8 based Middleware ContainersRedHatrh-sso-7/sso76-openshift-rhel8:7.6-20*
RHINT Service Registry 2.3.0 GARedHatmoment*
RHPAM 7.13.1 asyncRedHatmoment*
GnucashUbuntubionic*
GnucashUbuntufocal*
GnucashUbuntuimpish*
GnucashUbuntukinetic*
GnucashUbuntulunar*
GnucashUbuntumantic*
GnucashUbuntuoracular*
GnucashUbuntuplucky*
GnucashUbuntutrusty*
GnucashUbuntuxenial*
MediawikiUbuntubionic*
MediawikiUbuntufocal*
MediawikiUbuntuimpish*
MediawikiUbuntukinetic*
MediawikiUbuntulunar*
MediawikiUbuntumantic*
MediawikiUbuntuoracular*
MediawikiUbuntuplucky*
MediawikiUbuntutrusty*
Node-momentUbuntubionic*
Node-momentUbuntuesm-apps/bionic*
Node-momentUbuntuesm-apps/focal*
Node-momentUbuntuesm-apps/jammy*
Node-momentUbuntufocal*
Node-momentUbuntuimpish*
Node-momentUbuntujammy*
Node-momentUbuntuupstream*
Node-momentUbuntuxenial*
NtopngUbuntubionic*
NtopngUbuntufocal*
NtopngUbuntukinetic*
NtopngUbuntulunar*
NtopngUbuntumantic*
NtopngUbuntuoracular*
NtopngUbuntuplucky*
NtopngUbuntuxenial*
OdooUbuntuimpish*
OdooUbuntukinetic*
OdooUbuntulunar*
OdooUbuntumantic*
OdooUbuntuoracular*
OdooUbuntuplucky*
OmnidbUbuntufocal*
OmnidbUbuntuimpish*
OmnidbUbuntukinetic*
OmnidbUbuntulunar*
OmnidbUbuntumantic*
OmnidbUbuntuoracular*
OmnidbUbuntuplucky*
PostfixadminUbuntubionic*
PostfixadminUbuntudevel*
PostfixadminUbuntuesm-apps/jammy*
PostfixadminUbuntuesm-apps/noble*
PostfixadminUbuntuimpish*
PostfixadminUbuntujammy*
PostfixadminUbuntukinetic*
PostfixadminUbuntulunar*
PostfixadminUbuntumantic*
PostfixadminUbuntunoble*
PostfixadminUbuntuoracular*
PostfixadminUbuntuplucky*
PostfixadminUbuntuquesting*
PostfixadminUbuntutrusty*
PostfixadminUbuntuupstream*
PostfixadminUbuntuxenial*
Ruby-momentjs-railsUbuntufocal*
Ruby-momentjs-railsUbuntuimpish*
Ruby-momentjs-railsUbuntukinetic*
Ruby-momentjs-railsUbuntulunar*
Ruby-momentjs-railsUbuntumantic*
Ruby-momentjs-railsUbuntuoracular*
Ruby-momentjs-railsUbuntuplucky*
SabnzbdplusUbuntubionic*
SabnzbdplusUbuntufocal*
SabnzbdplusUbuntuimpish*
SabnzbdplusUbuntukinetic*
SabnzbdplusUbuntulunar*
SabnzbdplusUbuntumantic*
SabnzbdplusUbuntuoracular*
SabnzbdplusUbuntuplucky*
SabnzbdplusUbuntutrusty*
SabnzbdplusUbuntuxenial*
SyncthingUbuntubionic*
SyncthingUbuntufocal*
SyncthingUbuntuimpish*
SyncthingUbuntukinetic*
SyncthingUbuntulunar*
SyncthingUbuntumantic*
SyncthingUbuntuoracular*
SyncthingUbuntuplucky*
WordpressUbuntubionic*
WordpressUbuntufocal*
WordpressUbuntuimpish*
WordpressUbuntukinetic*
WordpressUbuntulunar*
WordpressUbuntumantic*
WordpressUbuntuoracular*
WordpressUbuntuplucky*
WordpressUbuntutrusty*
WordpressUbuntuxenial*

Potential Mitigations

  • Mitigation of resource exhaustion attacks requires that the target system either:

  • The first of these solutions is an issue in itself though, since it may allow attackers to prevent the use of the system by a particular valid user. If the attacker impersonates the valid user, they may be able to prevent the user from accessing the server in question.

  • The second solution is simply difficult to effectively institute – and even when properly done, it does not provide a full solution. It simply makes the attack require more resources on the part of the attacker.

References