QUIC Transport Parameters Memory Leak During HelloRetryRequest in s2n-tls
Medium5.3CVE-2026-16318 · Published Jul 21, 2026
**CVSSv3.1 Rating:** Medium **CVSSv3.1 Score:** 5.3 **CVSSv3.1 Vector String:** AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L **Summary** s2n-tls is an open source C99 implementation of the TLS/SSL protocols. An issue exists where a QUIC-enabled TLS 1.3 connection that goes through a HelloRetryRequest can cause one memory allocation to be leaked. **Impact** The QUIC transport parameters extension handler in s2n-tls incorrectly uses s2n_alloc instead of s2n_realloc to store the peer's transport parameters. When a TLS 1.3 connection goes through a HelloRetryRequest, the handler is called twice on the same connection. On the second call, s2n_alloc zeroes the existing pointer before allocating new memory, causing the first allocation to be leaked. This can occur during normal QUIC traffic when a client offers a key share group the server does not prefer. An unauthenticated user can amplify the issue by deliberately forcing HelloRetryRequests, causing up to approximately 64 KB of unreachable memory per handshake. Over time, this can lead to increased memory consumption on long-running server processes. The unreachable memory is only reclaimed when the process is restarted. Only server-side, Q...
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| s2n-tls Product | < 1.7.6 | 1.7.6 |
Details and references
**CVSSv3.1 Rating:** Medium **CVSSv3.1 Score:** 5.3 **CVSSv3.1 Vector String:** AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L **Summary** s2n-tls is an open source C99 implementation of the TLS/SSL protocols. An issue exists where a QUIC-enabled TLS 1.3 connection that goes through a HelloRetryRequest can cause one memory allocation to be leaked. **Impact** The QUIC transport parameters extension handler in s2n-tls incorrectly uses s2n_alloc instead of s2n_realloc to store the peer's transport parameters. When a TLS 1.3 connection goes through a HelloRetryRequest, the handler is called twice on the same connection. On the second call, s2n_alloc zeroes the existing pointer before allocating new memory, causing the first allocation to be leaked. This can occur during normal QUIC traffic when a client offers a key share group the server does not prefer. An unauthenticated user can amplify the issue by deliberately forcing HelloRetryRequests, causing up to approximately 64 KB of unreachable memory per handshake. Over time, this can lead to increased memory consumption on long-running server processes. The unreachable memory is only reclaimed when the process is restarted. Only server-side, QUIC-enabled deployments are affected. Non-QUIC TLS connections are not affected. AWS services that use s2n-tls have been updated to a patched version, and customers of those services do not need to take any action. Customers who use s2n-tls directly in their own applications should upgrade to the most recent release of s2n-tls. **Impacted versions:** <= v1.7.5 **Patches** The patch is included in s2n-tls version v1.7.6. **Workarounds** Deployments that do not enable QUIC are not affected and do not require any action. For QUIC-enabled deployments, restarting server processes periodically can reclaim the unreachable memory as a temporary mitigation. Otherwise, applications using s2n-tls should upgrade to the most recent release of s2n-tls. **References** If you have any questions or comments about this advisory, we ask that you contact AWS Security via our [vulnerability reporting page](https://aws.amazon.com/security/vulnerability-reporting) or directly via email to [aws-security@amazon.com](mailto:aws-security@amazon.com). Please do not create a public GitHub issue.
- CVSS 3.1
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
- Severity from
- GitHub (reviewed advisory)
More AWS advisories
All AWS| Date | Advisory | Severity | Fixed in |
|---|---|---|---|
| Jul 23 | Improper neutralization of argument delimiters in AWS Bedrock AgentCore Python SDK... | Unrated | No fix yet |
| Jul 23 | Allocation of resources without limits in the default aws-smithy-http-server serve() path... | Unrated | No fix yet |
| Jul 23 | AWS API MCP Server Security Policy Bypass via Startup Failure | Unrated | No fix yet |
| Jul 22 | AWS CDK CodeBuild S3 Log Encryption Boolean Inversion | Low3.3 | 2.253.0+2 more |
| Jul 21 | Issues with s2n-tls: an open-source implementation of the TLS/SSL protocols | Unrated | No fix yet |
| Jul 21 | Uncontrolled recursion in smithy-rs generated JSON, CBOR, and XML deserializers allows... | Unrated | No fix yet |