This project might be open to known security vulnerabilities, which can be prevented by tightening the version range of affected dependencies. Find detailed information at the bottom.

Crate cyper

Dependencies

(32 total, 1 outdated, 1 possibly insecure)

CrateRequiredLatestStatus
 async-stream^0.30.3.6up to date
 base64^0.220.23.1out of date
 cfg-if^1.0.01.0.4up to date
 compio^0.19.00.19.2up to date
 compression-codecs^0.40.4.39up to date
 cookie_store^0.220.22.1up to date
 cyper-core^0.9.00.9.0up to date
 cyper-hickory^0.1.00.1.0up to date
 encoding_rs^0.80.8.40up to date
 futures-util^0.3.300.3.34up to date
 h3^0.0.80.0.8up to date
 hickory-net ⚠️^0.260.26.2maybe insecure
 hickory-resolver^0.260.26.2up to date
 http^1.0.01.5.0up to date
 http-body-util^0.1.00.1.5up to date
 hyper^1.4.11.11.1up to date
 hyper-util^0.1.200.1.20up to date
 mime^0.30.3.17up to date
 mime_guess^2.02.0.5up to date
 nyquest-interface^0.4.00.4.0up to date
 once_cell^11.21.4up to date
 percent-encoding^2.32.3.2up to date
 rustls-platform-verifier^0.7.00.7.0up to date
 send_wrapper^0.60.6.0up to date
 serde^11.0.229up to date
 serde_json^11.0.151up to date
 serde_urlencoded^0.70.7.1up to date
 socket2^0.60.6.5up to date
 synchrony^0.10.1.9up to date
 thiserror^22.0.20up to date
 tower-service^0.3.20.3.3up to date
 url^22.5.8up to date

Dev dependencies

(14 total, 2 outdated, 2 possibly insecure)

CrateRequiredLatestStatus
 axum^0.8.10.8.9up to date
 brotli^89.0.0out of date
 clap^44.6.6up to date
 compio^0.19.00.19.2up to date
 cookie^0.180.18.2up to date
 cyper-axum^0.9.00.9.0up to date
 flate2^11.1.10up to date
 futures-channel^0.3.290.3.34up to date
 nyquest^0.4.00.4.0up to date
 rustls ⚠️^0.23.130.23.44maybe insecure
 serde^11.0.229up to date
 time ⚠️^0.30.3.55maybe insecure
 tower^0.5.10.5.3up to date
 zstd^0.130.14.0out of date

Security Vulnerabilities

rustls: rustls network-reachable panic in `Acceptor::accept`

RUSTSEC-2024-0399

A bug introduced in rustls 0.23.13 leads to a panic if the received TLS ClientHello is fragmented. Only servers that use rustls::server::Acceptor::accept() are affected.

Servers that use tokio-rustls's LazyConfigAcceptor API are affected.

Servers that use tokio-rustls's TlsAcceptor API are not affected.

Servers that use rustls-ffi's rustls_acceptor_accept API are affected.

time: Denial of Service via Stack Exhaustion

RUSTSEC-2026-0009

Impact

When user-provided input is provided to any type that parses with the RFC 2822 format, a denial of service attack via stack exhaustion is possible. The attack relies on formally deprecated and rarely-used features that are part of the RFC 2822 format used in a malicious manner. Ordinary, non-malicious input will never encounter this scenario.

Patches

A limit to the depth of recursion was added in v0.3.47. From this version, an error will be returned rather than exhausting the stack.

Workarounds

Limiting the length of user input is the simplest way to avoid stack exhaustion, as the amount of the stack consumed would be at most a factor of the length of the input.

hickory-net: NSEC3 closest-encloser proof validation enters unbounded loop on cross-zone responses

RUSTSEC-2026-0120

The NSEC3 closest-encloser proof validation in hickory-net's DnssecDnsHandle walks from the QNAME up to the SOA owner name, building a list of candidate encloser names. The iterator used assumes the QNAME is a descendant of the SOA owner, terminating only when the current candidate equals the SOA name. When the SOA in a response's authority section is not an ancestor of the QNAME, the loop stalls at the DNS root and never terminates, repeatedly calling Name::base_name() and pushing newly allocated Name and hashed-name entries into the candidate Vec.

The bug is reachable by any caller of DnssecDnsHandle — including the resolver, recursor, and client — when built with the dnssec-ring or dnssec-aws-lc-rs feature and configured to perform DNSSEC validation. It is triggered while validating a NoData or NXDomain response whose authority section contains an SOA record from a zone other than an ancestor of the QNAME, on a code path that requires NSEC3 closest-encloser proof. In practice this can be reached through an insecure CNAME chain that crosses zone boundaries into a DNSSEC-signed zone returning NoData, but the minimum condition is just a mismatched SOA owner on a response requiring NSEC3 validation.

A debug_assert_ne!(name, Name::root()) guards the loop body, so debug builds abort with a panic on the first iteration past the root. Release builds compile the assertion out and run the loop unbounded, allocating until the process exhausts available memory (OOM). A reachable upstream attacker who can return such a response can therefore crash a debug-built validator or exhaust memory on a release-built one.

We recommend all affected users update to hickory-net 0.26.1 for the fix.