Rust advisories / trillium-client
Vulnerability MediumRUSTSEC-2024-0008 · trillium-client
RUSTSEC-2024-0008: Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Request/Response Splitting')
Short answerA security vulnerability in the trillium-client crate: Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Request/Response Splitting'). GitHub rates it Medium. Fixed in 0.5.4: update to a fixed version.
| Crate | trillium-client |
|---|---|
| Type | Vulnerability |
| Affected versions | Before 0.5.4. |
| Fixed in | 0.5.4 |
| Severity | Medium (GitHub rating) |
| Published | 2024-01-23 |
| Last changed | 2026-10-12 |
| Also known as | CVE-2024-23644, GHSA-9f9p-cp3c-72jf, RUSTSEC-2024-0009 |
What to do
- See which version you have:
cargo tree -i trillium-client(it also shows which of your dependencies pulls it in). - Update within your version requirement:
cargo update -p trillium-client. If the fix is a newer major or minor than your requirement allows, raise it in Cargo.toml (for exampletrillium-client = "0.5.4") or update the dependency that pulls it in. - Check again with
cargo audit, or paste your Cargo.lock into our Cargo.toml checker.
Details from the advisory
Summary
Insufficient validation of outbound header values may lead to request splitting or response splitting attacks in scenarios where attackers have sufficient control over outbound headers.
Details
Outbound trillium_http::HeaderValue and trillium_http::HeaderName can be constructed infallibly and were not checked for illegal bytes when sending requests. Thus, if an attacker has sufficient control over header values (or names) in a request that they could inject \r\n sequences, they could get the client and server out of sync, and then pivot to gain control over other parts of requests or responses. (i.e. exfiltrating data from other requests, SSRF, etc.)
Patches
trillium-client >= 0.5.4:
- If any header name or header value is invalid in the client request headers, awaiting the client Conn returns an
Error::MalformedHeaderprior to any network access.
Workarounds
trillium client applications should sanitize or validate untrusted input that is included in header values and header names. Carriage return, newline, and null characters are not allowed.
Impact
This only affects use cases where attackers have control of outbound headers, and can insert "\r\n" sequences. Specifically, if untrusted and unvalidated input is inserted into header names or values.
Credit
Discovered and reported by @divergentdave
References
- Package: crates.io/crates/trillium-client
- Advisory: rustsec.org/advisories/RUSTSEC-2024-0008.html
- Web: github.com/trillium-rs/trillium/commit/16a42b3f8378a3fa4e61ece3e3e37e6a530df51d
From the RustSec Advisory Database (CC0-1.0) via the OSV export, downloaded Oct 24, 2026. Severity score computed from the published CVSS vector.
Up next
Are you affected?Check your whole dependency treePaste Cargo.lock: every advisory, for your exact versions.Read it next →Also worth your time
Did this answer your question?