CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-10740

CVE-2026-10740: Denial of Service in s2n-quic CryptoStream Reassembly

Amit Schendel
Amit Schendel
Senior Security Researcher

Aug 14, 2026·7 min read·14 visits

Executive Summary (TL;DR)

A zero-authentication heap allocation vulnerability in s2n-quic allows remote attackers to exhaust server memory and crash the service using a single crafted Initial packet with an excessive CRYPTO offset.

An unauthenticated Denial of Service vulnerability exists in the s2n-quic library's CryptoStream reassembler due to a lack of buffer limits on out-of-order cryptographic frames. An attacker can transmit a crafted CRYPTO frame with an extremely high offset and nominal payload, forcing the receiver to execute unbounded memory allocations and causing service crashes.

Vulnerability Overview

The Amazon Web Services (AWS) implementation of the IETF QUIC protocol, known as s2n-quic, is a high-performance network transport library written in Rust. In implementations of the QUIC protocol, cryptographic handshakes are conducted over dedicated streams using the CRYPTO frame type. The transport library must handle out-of-order packets due to the unreliable nature of UDP transport, reassembling fragmented streams before forwarding them to the cryptographic library.\n\nPrior to version 1.82.0, the CryptoStream space in s2n-quic did not restrict the buffer window size for out-of-order cryptographic handshake frames. Unauthenticated remote clients could leverage this design flaw to allocate significant blocks of system memory on the server. The vulnerability is classified under CWE-770 (Allocation of Resources Without Limits or Throttling) and CVE-2026-10740.\n\nThis security weakness exposes any service utilizing affected versions of s2n-quic to immediate Denial of Service (DoS) attacks. Because the memory allocation occurs before the connection establishes identity or completes cryptographic authentication, any network-adjacent attacker can trigger the issue. The vulnerability does not allow remote code execution or information disclosure but successfully impacts host availability.

Root Cause Analysis

The underlying vulnerability exists in the state management logic of out-of-order frames within the CryptoStream receive path. When a QUIC endpoint receives an out-of-order CRYPTO frame, it must store the payload until the missing bytes arrive to preserve the sequential stream required by TLS. To keep track of these data blocks, the library maintains a Reassembler structure that maps offsets to incoming data.\n\nThe critical error in vulnerable versions of s2n-quic is the absence of a maximum offset boundary on these incoming frames. When a frame contains an extremely high value in its offset field alongside a small payload, the Reassembler attempts to adjust its tracking structures to encompass the entire gap. This process results in an immediate allocation of memory to store internal index pointers, blocks, or tracking segments.\n\nBecause no limit was enforced on the maximum distance between the current stream read cursor and the maximum write offset, the allocation size was effectively unbounded. An attacker can set the offset field to any arbitrary 62-bit integer, which is the maximum size allowed by the QUIC variable-length integer encoding. The server attempts to allocate memory proportional to this offset distance, causing rapid resource exhaustion.

Code-Level Analysis

To understand the flaw and its remediation, it is necessary to inspect the vulnerable code path in s2n-quic-transport/src/space/crypto_stream.rs. The pre-patch code was marked with explicit TODO comments admitting the lack of appropriate constraints.\n\nrust\n// Pre-patch code logic in s2n-quic-transport/src/space/crypto_stream.rs\n// Note the explicit TODO comment acknowledging the vulnerability\n\n//= https://www.rfc-editor.org/rfc/rfc9000#section-7.5\n//= type=TODO\n//= tracking-issue=356\n//= feature=Crypto buffer limits\n//# Endpoints MAY choose to\n//# allow more data to be buffered during the handshake.\n\n//TODO we need to limit the buffer size here\nself.rx.write_at(frame.offset, frame.data)\n\n\nThe patch in commit 6c90fa94bca4b65d1cfb41eb47fcdcd60ef61c5a remediates the issue by introducing a strict limit of 128 KiB (MAX_CRYPTO_BUFFER_SIZE) on out-of-order cryptographic frames. This limit satisfies RFC 9000 §7.5 requirements while defending against memory exhaustion. The corrected implementation enforces bounds using safe arithmetic operations.\n\nrust\n// Patched logic implementing buffering constraints\nconst MAX_CRYPTO_BUFFER_SIZE: u64 = 128 * 1024; // 128 KiB limit\n\n// Enforce the buffer size limit required by RFC 9000 §7.5.\n// This bounds the maximum distance between the read cursor and the farthest\n// byte a peer can write, capping total Reassembler memory for the crypto stream.\nlet end_offset = frame\n .offset\n .checked_add_usize(frame.data.len())\n .ok_or(transport::Error::CRYPTO_BUFFER_EXCEEDED)?;\n\nlet buffered = end_offset.as_u64().saturating_sub(self.rx.consumed_len());\nif buffered > MAX_CRYPTO_BUFFER_SIZE {\n //= https://www.rfc-editor.org/rfc/rfc9000#section-7.5\n //# If an endpoint does not expand its buffer, it MUST close\n //# the connection with a CRYPTO_BUFFER_EXCEEDED error code.\n return Err(transport::Error::CRYPTO_BUFFER_EXCEEDED);\n}\n\nself.rx.write_at(frame.offset, frame.data).map_err(|_| {\n // ...\n\n\nThe check utilizes checked_add_usize to calculate the final offset of the incoming frame safely. It then uses saturating_sub to calculate the distance from the currently consumed read cursor. If this distance exceeds MAX_CRYPTO_BUFFER_SIZE, the transaction aborts, returning a CRYPTO_BUFFER_EXCEEDED protocol error, preventing any further memory allocation.

Exploitation Methodology & Scenarios

Exploitation of CVE-2026-10740 relies on crafting a single QUIC Initial packet designed to bypass normal handshaking procedures. Because the vulnerable path is executed upon packet receipt, the attacker does not need to complete the cryptographic handshake or establish a valid TLS session. The objective is to force the server's transport thread to process an elevated write instruction immediately.\n\nAn attacker constructs a UDP packet payload containing a standard QUIC header for an Initial packet. Inside this packet, the attacker embeds a CRYPTO frame. The header parameters of this frame are set such that the offset is a high integer value, such as 0x3FFFFFFFFFFFFFF, while the actual payload consists of a single static byte. The overall size of the UDP packet remains well within standard network boundaries (typically under 1200 bytes).\n\nUpon transmitting this packet to the target's open port, the server processes the incoming UDP stream. When parsing the QUIC frames, the CryptoStream handler reads the offset parameter. It then initiates the memory allocation sequence for the Reassembler to host the sparse array. This triggers immediate heap exhaustion on the handling thread, culminating in either a panic or termination of the service process.

Impact & Consequences Assessment

The successful exploitation of CVE-2026-10740 leads to a localized Denial of Service. When the target process experiences memory exhaustion, the underlying operating system's Out-of-Memory (OOM) killer may terminate the entire server application. If multiple threads run within the same memory space, a crash of the transport thread results in a full system service disruption.\n\nThe CVSS v3.1 vector is rated at 5.3 (Medium), showing a vector string of CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L. This score classifies the availability impact as Low because it primarily affects the specific target service process and does not compromise operating system kernel stability directly. However, the operational impact in enterprise environments is critical, as any exposed public-facing QUIC port can be systematically taken down with minimal attacker bandwidth.\n\nNo public Proof-of-Concept (PoC) code is currently known to be available in the public domain, and there is no evidence of active exploitation in the wild. Despite the absence of threat actor activity, the simplicity of the attack structure necessitates rapid remediation across all systems running the affected transport library.

Remediation & Hardening

The most effective remediation is upgrading the s2n-quic dependency to version 1.82.0 or higher. Since this library is compiled statically into Rust binaries, developers must rebuild and redeploy all dependent services. Upgrading the version in the project's dependency manifest ensures that the compiler integrates the defensive offset validation checks.\n\ntoml\n# Cargo.toml configuration update\ns2n-quic = "1.82.0"\n\n\nFor instances where immediate compilation and redeployment are not feasible, network-level mitigations can reduce the exposure risk. Network engineers can implement rate limits on UDP traffic directed at the QUIC ports to prevent brute-force memory allocation attempts. Additionally, analyzing incoming connection patterns for elevated levels of unauthenticated Initial packets can help identify active probes.\n\nDevelopers should audit their full dependency graph to confirm that transitive dependencies do not pull in older versions of the s2n-quic crate. Running cargo tree -p s2n-quic inside the project workspace will display all active paths and version strings. Ensuring that all references align with version 1.82.0 or later is critical to completely closing the vulnerability window.

Fix Analysis (3)

Technical Appendix

CVSS Score
5.3/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
EPSS Probability
0.29%
Top 78% most exploited

Affected Systems

s2n-quic

Affected Versions Detail

Product
Affected Versions
Fixed Version
s2n-quic
AWS
< 1.82.01.82.0
AttributeDetail
CWE IDCWE-770
Attack VectorNetwork
CVSS Score5.3 (Medium)
EPSS Score0.00291
ImpactAvailability (Denial of Service)
Exploit StatusNone
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1499Endpoint Denial of Service
Impact
CWE-770
Allocation of Resources Without Limits or Throttling

The software allocates memory or other resources on behalf of an untrusted actor without placing structural bounds on the maximum size or quantity that can be allocated.

Vulnerability Timeline

AWS patches early connection closure packet loops (Commit b493d2a7)
2026-06-05
AWS merges the crypto stream buffer limits fix to master (Commit 6c90fa94)
2026-06-09
AWS releases s2n-quic version 1.82.0 (Commit 4438384b) and CVE disclosed
2026-06-10

References & Sources

  • [1]NVD CVE Record
  • [2]CVE.org Record
  • [3]GitHub Security Advisory
  • [4]AWS Security Advisory

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•1 day ago•CVE-2026-11748
6.9

CVE-2026-11748: Unauthenticated LDAP Injection in Central Dogma Server Authentication

An LDAP injection vulnerability exists in the centraldogma-server-auth-shiro module of LY Corporation Central Dogma before version 0.84.0. The search logic dynamically constructs LDAP search filters by interpolating user-provided usernames without escaping RFC 4515 metacharacters. Unauthenticated remote attackers can leverage this flaw to bypass authentication, enumerate directory hierarchies, and access unauthorized resources.

Alon Barad
Alon Barad
9 views•6 min read
•1 day ago•CVE-2026-11746
9.4

CVE-2026-11746: Use of Hard-coded ZooKeeper Replication Secret 'ch4n63m3' in Central Dogma Server

CVE-2026-11746 is a critical vulnerability in Central Dogma Server prior to version 0.84.0, where an embedded ZooKeeper replication secret silently falls back to a publicly known, hard-coded default string ('ch4n63m3'). Remote attackers with access to the replication network can authenticate as legitimate cluster peers, potentially leading to unauthorized data exposure, state manipulation, or complete cluster takeover.

Amit Schendel
Amit Schendel
7 views•6 min read
•1 day ago•CVE-2026-56665
4.2

CVE-2026-56665: Logical Validation Bypass in ZITADEL External JWT Identity Provider

A logical verification flaw in ZITADEL's external JWT Identity Provider validation allows attackers to bypass session expiration checks. If an incoming JWT lacks the 'exp' claim, the system skips validation entirely, creating an indefinitely valid session. This issue has been addressed in versions 3.4.12 and 4.15.2.

Alon Barad
Alon Barad
7 views•7 min read
•1 day ago•CVE-2026-59149
6.5

CVE-2026-59149: Sibling Directory Path Traversal in Mockoon Backend Server

CVE-2026-59149 identifies a directory traversal vulnerability in `@mockoon/commons-server`, the backend mock-server library powering the Mockoon application. The flaw occurs in the path containment validation logic used during raw file response generation. An unauthenticated attacker can exploit this weakness to retrieve arbitrary files from sibling directories sharing a common prefix with the designated static base directory.

Amit Schendel
Amit Schendel
9 views•5 min read
•1 day ago•CVE-2026-59148
8.8

CVE-2026-59148: Unauthenticated Administrative API and CORS Misconfiguration in Mockoon

An in-depth analysis of CVE-2026-59148, a high-severity flaw in Mockoon where unauthenticated administrative endpoints and a wildcard Cross-Origin Resource Sharing (CORS) policy allow remote execution, state poisoning, and credential theft.

Alon Barad
Alon Barad
11 views•6 min read
•1 day ago•CVE-2026-56666
4.8

CVE-2026-56666: Account Takeover via Improper Email Verification in ZITADEL Federated Identity Handler

An improper authentication vulnerability (CWE-287) in ZITADEL's external identity provider handler before version 4.15.3 allows remote attackers to perform complete account takeover. When auto-linking by email is enabled, ZITADEL verifies that the local target account has a verified email address but fails to verify if the external provider confirmed ownership of that same email. Attackers can exploit this by registering an unverified account with a victim's email address on a permissive external provider, leading to unauthorized account binding and persistent access.

Amit Schendel
Amit Schendel
7 views•7 min read