Infinite Loop Vulnerability in rustls

rustls Updated 02 Oct 2025

Summary

19/04/2024
Yes i
High
7.5

CVE-2024-32650: rustls::ConnectionCommon::complete_io could fall into an infinite loop based on network input. Affects rustls across 3 version ranges.

>= 0.0.0-0, < 0.21.11 >= 0.22.0, < 0.22.4 >= 0.23.0, < 0.23.5

Fixed in 0.21.11, 0.22.4 or 0.23.5, depending on the release line you run. How to fix ↓

Also tracked for

The same CVE-2024-32650 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Sponsored MarkAI Find prospects already talking about the problem you solve AI watches the communities your customers use to find qualified prospects, then alerts you when a conversation is worth joining. See MarkAI

Background

rustls is a Rust implementation of the TLS protocol. It provides a secure communication channel over the network. The rustls::ConnectionCommon::complete_io function is responsible for handling I/O operations during the TLS handshake. However, a vulnerability has been discovered in this function that can lead to an infinite loop if a close_notify alert is received during the handshake.

Vulnerability Detail

When a close_notify alert is received during the TLS handshake, the complete_io function in rustls does not terminate properly. This can result in an infinite loop, causing denial-of-service (DoS) conditions. It is important to note that this vulnerability only affects callers that use the complete_io function. The rustls-tokio and rustls-ffi libraries are not affected as they do not call complete_io. However, the rustls::Stream and rustls::StreamOwned types, which utilize complete_io, are vulnerable.

How To Fix

Latest published version: 0.23.46 as of 22 Oct 2026

Upgrading to it may include breaking changes; the versions below are the minimum fixed release for this vulnerability.

If you can't move to the latest

The minimum fixed version depends on the release line you run.

  • >= 0.0.0-0, < 0.21.11 0.21.11
  • >= 0.22.0, < 0.22.4 0.22.4
  • >= 0.23.0, < 0.23.5 0.23.5

Tip — Not sure which release line you're on? Vulert can find the fix for the version you are using. Scan free →

Workaround

As a workaround, if updating the rustls package is not immediately feasible, developers can avoid using the rustls::Stream and rustls::StreamOwned types that utilize the complete_io function. Instead, they can use the rustls-tokio or rustls-ffi libraries, which are not affected by this vulnerability.

Conclusion

The infinite loop vulnerability in rustls can lead to denial-of-service conditions. It is crucial to update the rustls package to the recommended versions or utilize the rustls-tokio or rustls-ffi libraries as a workaround. For further assistance in vulnerability remediation, please contact DevNack.com.

See every vulnerability recorded for rustls →

Share this vulnerability

FAQ

rustls is a Rust implementation of the TLS protocol, providing secure communication over the network.

Versions prior to 0.21.11, 0.22.4, and 0.23.5 are affected by this vulnerability.

This vulnerability can lead to denial-of-service (DoS) conditions due to an infinite loop in the complete_io function.

No, rustls-tokio and rustls-ffi libraries are not affected as they do not use the vulnerable complete_io function.

Yes, the CVSS score for this vulnerability is 7.5 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H).

Related vulnerabilities

Recent vulnerabilities recorded for rustls.

How To Fix

Latest published version: 0.23.46 as of 22 Oct 2026

Upgrading to it may include breaking changes; the versions below are the minimum fixed release for this vulnerability.

If you can't move to the latest

The minimum fixed version depends on the release line you run.

  • >= 0.0.0-0, < 0.21.11 0.21.11
  • >= 0.22.0, < 0.22.4 0.22.4
  • >= 0.23.0, < 0.23.5 0.23.5

Tip — Not sure which release line you're on? Vulert can find the fix for the version you are using. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback