Cyber Posture

CVE-2024-36403

Medium

Published: 16 January 2025

Published
16 January 2025
Modified
20 August 2025
KEV Added
Patch
CVSS Score 5.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
EPSS Score 0.0011 28.2th percentile
Risk Priority 11 60% EPSS · 20% KEV · 20% CVSS

Description

Matrix Media Repo (MMR) is a highly configurable multi-homeserver media repository for Matrix. MMR before version 1.3.5 is vulnerable to unbounded disk consumption, where an unauthenticated adversary can induce it to download and cache large amounts of remote media files. MMR's typical operating environment uses S3-like storage as a backend, with file-backed store as an alternative option. Instances using a file-backed store or those which self-host an S3 storage system are therefore vulnerable to a disk fill attack. Once the disk is full, authenticated users will be unable to upload new media, resulting in denial of service. For instances configured to use a cloud-based S3 storage option, this could result in high service fees instead of a denial of service. MMR 1.3.5 introduces a new default-on "leaky bucket" rate limit to reduce the amount of data a user can request at a time. This does not fully address the issue, but does limit an unauthenticated user's ability to request large amounts of data. Operators should note that the leaky bucket implementation introduced in MMR 1.3.5 requires the IP address associated with the request to be forwarded, to avoid mistakenly applying the rate limit to the reverse proxy instead. To avoid this issue, the reverse proxy should populate the X-Forwarded-For header when sending the request to MMR. Operators who cannot update may wish to lower the maximum file size they allow and implement harsh rate limits, though this can still lead to a large amount of data to be downloaded.

Security Summary

CVE-2024-36403 is an unbounded disk consumption vulnerability (CWE-770, CVSS 5.3; AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L) in Matrix Media Repo (MMR), a highly configurable multi-homeserver media repository for Matrix. Versions of MMR prior to 1.3.5 are affected, particularly those using a file-backed store or self-hosting an S3-like storage backend, as an unauthenticated adversary can induce the repository to download and cache large volumes of remote media files without bounds.

An unauthenticated attacker can exploit this remotely with low complexity by repeatedly requesting large remote media files, causing MMR to fetch and store them. In file-backed or self-hosted S3 environments, this fills the disk, preventing authenticated users from uploading new media and resulting in denial of service. Deployments using cloud-based S3 storage avoid disk exhaustion but risk incurring high service fees from excessive data storage.

The GitHub security advisory for MMR recommends upgrading to version 1.3.5, which introduces a default-on "leaky bucket" rate limit to curb the volume of data an unauthenticated user can request at once, though this is not a complete fix. Proper operation requires reverse proxies to populate the X-Forwarded-For header to ensure rate limiting applies to the client IP rather than the proxy. As interim mitigations, operators unable to update should reduce maximum file sizes and enforce strict rate limits, despite potential for significant data accumulation.

Details

CWE(s)
CWE-770

Affected Products

t2bot
matrix-media-repo
≤ 1.3.5

References