Medium severityNVD Advisory· Published Oct 1, 2024· Updated Apr 15, 2026
CVE-2024-47609
CVE-2024-47609
Description
Tonic is a native gRPC client & server implementation with async/await support. When using tonic::transport::Server there is a remote DoS attack that can cause the server to exit cleanly on accepting a TCP/TLS stream. This can be triggered by causing the accept call to error out with errors that were not covered correctly causing the accept loop to exit. Upgrading to tonic 0.12.3 and above contains the fix.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
toniccrates.io | >= 0.12.2, < 0.12.3 | 0.12.3 |
Patches
24b8d2c46aa57a4472a86f329server: ignore more error kinds in incoming socket stream (#1885)
1 file changed · +7 −1
tonic/src/transport/server/incoming.rs+7 −1 modified@@ -91,7 +91,13 @@ fn handle_accept_error(e: impl Into<crate::Error>) -> ControlFlow<crate::Error> let e = e.into(); tracing::debug!(error = %e, "accept loop error"); if let Some(e) = e.downcast_ref::<io::Error>() { - if e.kind() == io::ErrorKind::ConnectionAborted { + if matches!( + e.kind(), + io::ErrorKind::ConnectionAborted + | io::ErrorKind::Interrupted + | io::ErrorKind::InvalidData // Raised if TLS handshake failed + | io::ErrorKind::WouldBlock + ) { return ControlFlow::Continue(()); } }
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
6- github.com/advisories/GHSA-4jwc-w2hc-78qvghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2024-47609ghsaADVISORY
- github.com/hyperium/tonic/commit/a4472a86f3290e60c7c01348b7e6a8164d6e7e48nvdWEB
- github.com/hyperium/tonic/issues/1897nvdWEB
- github.com/hyperium/tonic/security/advisories/GHSA-4jwc-w2hc-78qvnvdWEB
- rustsec.org/advisories/RUSTSEC-2024-0376.htmlghsaWEB
News mentions
0No linked articles in our index yet.