{"id":"CVE-2020-35875","aliases":["EUVD-2021-1514","GHSA-2jfv-g3fh-xq3v","RUSTSEC-2020-0019"],"status":"published","title":"Excessive memory usage in tokio-rustls","description":"An issue was discovered in the tokio-rustls crate before 0.13.1 for Rust. Excessive memory usage may occur when data arrives quickly.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.01352,"percentile":0.71754,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-400"],"published":"2020-05-19T12:00:00Z","modified":"2026-06-17T03:14:30Z","fixes":[{"ecosystem":"crates.io","package":"tokio-rustls","fixed_in":["0.12.3","0.13.1"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"tokio-rustls","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.12.0"},{"fixed":"0.12.3"}]}]},{"source":"ghsa","ecosystem":"crates.io","package":"tokio-rustls","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.13.0"},{"fixed":"0.13.1"}]}]},{"source":"osv","ecosystem":"crates.io","package":"tokio-rustls","ranges":[{"type":"SEMVER","events":[{"introduced":"0.12.0"},{"fixed":"0.12.3"}]}]},{"source":"osv","ecosystem":"crates.io","package":"tokio-rustls","ranges":[{"type":"SEMVER","events":[{"introduced":"0.13.0"},{"fixed":"0.13.1"}]}]},{"source":"osv","ecosystem":"crates.io","package":"tokio-rustls","ranges":[{"type":"SEMVER","events":[{"introduced":"0.12.0"},{"fixed":"0.12.3"},{"introduced":"0.13.0"},{"fixed":"0.13.1"}]}]}],"products":[{"vendor":"tokio","product":"tokio-rustls"}],"references":[{"url":"https://rustsec.org/advisories/RUSTSEC-2020-0019.html","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","web","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-35875","tags":["advisory"]},{"url":"https://github.com/tokio-rs/tls/pull/14","tags":["web"]},{"url":"https://github.com/advisories/GHSA-2jfv-g3fh-xq3v"},{"url":"https://github.com/tokio-rs/tls","tags":["package"]},{"url":"https://crates.io/crates/tokio-rustls","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2020-35875","description":"An issue was discovered in the tokio-rustls crate before 0.13.1 for Rust. Excessive memory usage may occur when data arrives quickly.","status":"published","published":"2020-12-31T08:27:32Z","modified":"2024-08-04T17:16:12.647Z","updated_at":"2026-11-02T14:35:57.975444Z"}],"euvd":[{"id":"EUVD-2021-1514","description":"An issue was discovered in the tokio-rustls crate before 0.13.1 for Rust. Excessive memory usage may occur when data arrives quickly.","status":"published","published":"2020-12-31T08:27:32Z","modified":"2024-08-04T17:16:12Z","updated_at":"2026-11-03T03:07:05.241494Z"}],"ghsa":[{"id":"GHSA-2jfv-g3fh-xq3v","title":"Excessive memory usage in tokio-rustls","description":"tokio-rustls does not call process_new_packets immediately after read, so the expected termination condition wants_read always returns true. As long as new incoming data arrives faster than it is processed and the reader does not return pending, data will be buffered. This may cause DoS.","status":"published","published":"2021-08-25T20:46:54Z","modified":"2023-06-13T21:56:59Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T14:36:54.225318Z"}],"nvd":[{"id":"CVE-2020-35875","description":"An issue was discovered in the tokio-rustls crate before 0.13.1 for Rust. Excessive memory usage may occur when data arrives quickly.","status":"published","published":"2020-12-31T10:15:15.817Z","modified":"2026-06-17T03:14:30.803Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:N/I:N/A:P","level":"medium","assessor":"primary"}],"updated_at":"2026-11-02T14:06:28.340168Z"}],"osv":[{"id":"GHSA-2jfv-g3fh-xq3v","title":"Excessive memory usage in tokio-rustls","description":"tokio-rustls does not call process_new_packets immediately after read, so the expected termination condition wants_read always returns true. As long as new incoming data arrives faster than it is processed and the reader does not return pending, data will be buffered. This may cause DoS.","status":"published","published":"2021-08-25T20:46:54Z","modified":"2023-11-08T04:03:36.949759Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T15:46:34.338541Z"},{"id":"RUSTSEC-2020-0019","title":"tokio-rustls reads may cause excessive memory usage","description":"`tokio-rustls` does not call `process_new_packets` immediately after `read`,\nso the expected termination condition `wants_read` always returns true.\nAs long as new incoming data arrives faster than it is processed\nand the reader does not return pending, data will be buffered.\n\nThis may cause DoS.","status":"published","published":"2020-05-19T12:00:00Z","modified":"2023-11-08T04:03:36.949759Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:53:39.492624Z"}]}}
