Rustls vulnerable to an infinite loop in rustls::conn::ConnectionCommon::complete_io() with proper client input (rustls rustls)
At a glance
- Source
- NVD
- EPSS
- EPSS 0.95 % · percentile 61 ()
- State
- PUBLISHED
- Published
- Updated
- Assigner
- GitHub_M
- NVD status
- Deferred
Description
Rustls is a modern TLS library written in Rust. `rustls::ConnectionCommon::complete_io` could fall into an infinite loop based on network input. When using a blocking rustls server, if a client send a `close_notify` message immediately after `client_hello`, the server's `complete_io` will get in an infinite loop. This vulnerability is fixed in 0.23.5, 0.22.4, and 0.21.11.
Weaknesses (CWE)
- CWE-835 — Loop with Unreachable Exit Condition
References
- https://github.com/rustls/rustls/security/advisories/GHSA-6g7w-8wpp-frhj
- https://github.com/rustls/rustls/commit/2123576840aa31043a31b0770e6572136fbe0c2d
- https://github.com/rustls/rustls/commit/6e938bcfe82a9da7a2e1cbf10b928c7eca26426e
- https://github.com/rustls/rustls/commit/f45664fbded03d833dffd806503d3c8becd1b71e
Scores
| Version | Score | Vector | Scored by |
|---|---|---|---|
| CVSS 3.1 | HIGH 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | GitHub_M |
| CVSS 3.1 | HIGH 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | NVD · security-advisories@github.com (Secondary) |
European references
- ENISA EUVD · EUVD-2024-1125
- GCVE · GCVE-0-2024-32650
CERT-FR advisories
- CERTFR-2026-AVI-0627 — Multiples vulnérabilités dans les produits Splunk · cert.ssi.gouv.fr
Affected products
| Product | Versions |
|---|---|
| rustls · rustls | affected >= 0.23.0, < 0.23.5 ; affected >= 0.22.0, < 0.22.4 ; affected >= 0.21.0, < 0.21.11 ; affected = 0.20.0 |
Sources
| Source | Licence |
|---|---|
| CVE List (CVEProject cvelistV5) | CVE Program Terms of Use |
| EPSS (FIRST.org) | FIRST — attribution requested |
| ENISA EUVD | ENISA — reproduction authorised, source acknowledged |
| CERT-FR (ANSSI) | Licence Ouverte / Etalab 2.0 |
| NVD (NIST) via fkie-cad/nvd-json-data-feeds | Public domain — this product uses data from the NVD API but is not endorsed or certified by the NVD |