CVE Vulnerabilities

CVE-2021-29471

Uncontrolled Resource Consumption

Published: May 11, 2021 | Modified: Nov 21, 2024
CVSS 3.x
5.3
MEDIUM
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
CVSS 2.x
5 MEDIUM
AV:N/AC:L/Au:N/C:N/I:N/A:P
RedHat/V2
RedHat/V3
Ubuntu
MEDIUM

Synapse is a Matrix reference homeserver written in python (pypi package matrix-synapse). Matrix is an ecosystem for open federated Instant Messaging and VoIP. In Synapse before version 1.33.2 Push rules can specify conditions under which they will match, including event_match, which matches event content against a pattern including wildcards. Certain patterns can cause very poor performance in the matching engine, leading to a denial-of-service when processing moderate length events. The issue is patched in version 1.33.2. A potential workaround might be to prevent users from making custom push rules, by blocking such requests at a reverse-proxy.

Weakness

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

Affected Software

Name Vendor Start Version End Version
Synapse Matrix * 1.33.2 (excluding)
Matrix-synapse Ubuntu bionic *
Matrix-synapse Ubuntu esm-apps/bionic *
Matrix-synapse Ubuntu esm-apps/focal *
Matrix-synapse Ubuntu esm-apps/jammy *
Matrix-synapse Ubuntu focal *
Matrix-synapse Ubuntu groovy *
Matrix-synapse Ubuntu hirsute *
Matrix-synapse Ubuntu impish *
Matrix-synapse Ubuntu jammy *
Matrix-synapse Ubuntu kinetic *
Matrix-synapse Ubuntu trusty *
Matrix-synapse Ubuntu upstream *
Matrix-synapse Ubuntu xenial *

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