
Sanitized advisory for CVE-2025-51846 affecting CryptPad WebSocket handling.
Severity: High (CVSS 7.5)
CWE: 400 – Uncontrolled Resource Consumption (Resource Exhaustion),
CWE: CWE-770 – Allocation of Resources Without Limits or Throttling
Status: Fixed
Confirmed affected: CryptPad 2025.3.1
Affected range in CSAF draft: >=2025.3.1, <2026.2.1
Fixed version note: The coordinator draft currently references 2026.2.1. CryptPad later indicated that 2026.2.2 is the actual good bugfix release due to a version issue in 2026.2.1. Operators should confirm the final fixed version in the published CISA advisory and CryptPad release notes.
image
CryptPad’s WebSocket implementation enforced limits on individual frames but did not sufficiently enforce cumulative limits on the amount of data and number of fragments processed per connection.
Under RFC 6455, a WebSocket message can be split across multiple frames. In affected versions, repeated valid frames or fragmented messages could cause excessive server-side resource consumption.
A remote unauthenticated attacker could exploit this behavior to degrade or deny service for legitimate users. In testing, this resulted in high CPU and memory usage, an unresponsive CryptPad UI, failed document/session loading, and service termination under high load.
image
The issue is caused by insufficient cumulative resource accounting in the WebSocket processing path. While individual frames may be subject to size checks, the server still processes repeated valid frames or fragments without an effective cumulative per-connection limit.
In lab testing, several non-malicious-looking WebSocket traffic patterns were used to validate the issue:
These tests demonstrated that CryptPad continued to consume resources while processing traffic that individually appeared valid. Under heavier lab load, the service became unavailable and system logs showed process termination due to memory exhaustion.
Full stress-test scripts are not published to avoid enabling abuse against production CryptPad instances.
image
This advisory intentionally includes only a non-weaponized description of the reproduction approach.
At a high level, the issue can be reproduced in a controlled lab by:
No public exploit or flood script is included.
image
An attacker can therefore open a WebSocket connection and send hundreds or even thousands of frames (each within the allowed size limit), until the server has buffered and processed an enormous amount of data. Even though each frame by itself looks 'legal', the cumulative effect is that the server’s memory and CPU get consumed processing every fragment.
A remote unauthenticated attacker may:
image
>=2025.3.1, <2026.2.11e0c06ad8a0c5dab795f85f9730ec2693320c62eimage
Operators should upgrade to the fixed CryptPad release identified in the final CISA advisory and CryptPad release notes.
Additional defense-in-depth mitigations include:
image
CryptPad acknowledged the denial-of-service condition. The vendor stated that countermeasures had already been implemented on the nginx side for the flagship instance and that additional changes were being added to the example configuration and server logic. CryptPad also referenced a broader server refactor intended to include these countermeasures.
CryptPad later provided PR #2239 as the public fix reference and indicated that the corrected bugfix release is 2026.2.2, following a version issue in 2026.2.1.
image
This issue is correctly classified as a high-severity denial-of-service vulnerability. The attack does not require authentication and can cause full service unavailability by exhausting server resources through valid WebSocket traffic patterns.
image
Testing was performed only in controlled environments. This advisory does not include weaponized flood scripts or complete reproduction tooling.
image
John Perifanis
Security Researcher
Contact: https://www.linkedin.com/in/ioannis-p-9081842b9