CVE-2021-45710
Race Condition in tokio
An issue was discovered in the tokio crate before 1.8.4, and 1.9.x through 1.13.x before 1.13.1, for Rust. In certain circumstances involving a closed oneshot channel, there is a data race and memory corruption.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
8.1
An issue was discovered in the tokio crate before 1.8.4, and 1.9.x through 1.13.x before 1.13.1, for Rust. In certain circumstances involving a closed oneshot channel, there is a data race and memory corruption.
- Record
CVE-2021-45710- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 5.1 Medium
AV:N/AC:H/Au:N/C:P/I:P/A:P - Weakness
- CWE-362
- Updated
- 2026-11-02
CVE List No score
An issue was discovered in the tokio crate before 1.8.4, and 1.9.x through 1.13.x before 1.13.1, for Rust. In certain circumstances involving a closed oneshot channel, there is a data race and memory corruption.
- Record
CVE-2021-45710- Updated
- 2026-11-02
EUVDEUVD-2022-0582 No score
An issue was discovered in the tokio crate before 1.8.4, and 1.9.x through 1.13.x before 1.13.1, for Rust. In certain circumstances involving a closed oneshot channel, there is a data race and memory corruption.
- Record
EUVD-2022-0582- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-fg7r-2g4j-5cgr
8.1
Race Condition in tokio
If a tokio::sync::oneshot channel is closed (via the oneshot::Receiver::close method), a data race may occur if the oneshot::Sender::send method is called while the corresponding oneshot::Receiver is awaited or calling try_recv.
When these methods are called concurrently on a closed channel, the two halves of the channel can concurrently access a shared memory location, resulting in a data race. This has been observed to cause memory corruption.
Note that the race only occurs when both halves of the channel are used after the Receiver half has called close. Code where close is not used, or where the Receiver is not awaited and try_recv is not called after calling close, is not affected.
- Record
GHSA-fg7r-2g4j-5cgr- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-362
- Updated
- 2026-11-02
OSV
8.1
An issue was discovered in the tokio crate before 1.8.4, and 1.9.x through 1.13.x before 1.13.1, for Rust. In certain circumstances involving a closed oneshot channel, there is a data race and memory corruption.
- Record
CVE-2021-45710- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVDEBIAN-CVE-2021-45710
8.1
An issue was discovered in the tokio crate before 1.8.4, and 1.9.x through 1.13.x before 1.13.1, for Rust. In certain circumstances involving a closed oneshot channel, there is a data race and memory corruption.
- Record
DEBIAN-CVE-2021-45710- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Show 21 moreShow less
OSVGHSA-fg7r-2g4j-5cgr
8.1
Race Condition in tokio
If a tokio::sync::oneshot channel is closed (via the oneshot::Receiver::close method), a data race may occur if the oneshot::Sender::send method is called while the corresponding oneshot::Receiver is awaited or calling try_recv.
When these methods are called concurrently on a closed channel, the two halves of the channel can concurrently access a shared memory location, resulting in a data race. This has been observed to cause memory corruption.
Note that the race only occurs when both halves of the channel are used after the Receiver half has called close. Code where close is not used, or where the Receiver is not awaited and try_recv is not called after calling close, is not affected.
- Record
GHSA-fg7r-2g4j-5cgr- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-362
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2021-45710
8.1
An issue was discovered in the tokio crate before 1.8.4, and 1.9.x through 1.13.x before 1.13.1, for Rust. In certain circumstances involving a closed oneshot channel, there is a data race and memory corruption.
- Record
UBUNTU-CVE-2021-45710- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVopenSUSE-SU-2024:0294-1 No score
Security update for kanidm
This update for kanidm fixes the following issues:
- kanidm version 1.3.3~git0.f075d13:
- Release 1.3.3
- Mail substr index (#2981)
- Record
openSUSE-SU-2024:0294-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11710-1 No score
greetd-0.8.0-2.1 on GA media
These are all security issues fixed in the greetd-0.8.0-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11710-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11711-1 No score
kanidm-1.1.0~alpha7~git0.c8468199-1.1 on GA media
These are all security issues fixed in the kanidm-1.1.0alpha7git0.c8468199-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11711-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11714-1 No score
rustscan-2.0.1+0-1.1 on GA media
These are all security issues fixed in the rustscan-2.0.1+0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11714-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11715-1 No score
rustup-1.24.3~git1.0a74fef5-2.1 on GA media
These are all security issues fixed in the rustup-1.24.3~git1.0a74fef5-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11715-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11716-1 No score
sccache-0.2.15~git0.6b6d2f7-8.1 on GA media
These are all security issues fixed in the sccache-0.2.15~git0.6b6d2f7-8.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11716-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11717-1 No score
tuigreet-0.7.1-3.1 on GA media
These are all security issues fixed in the tuigreet-0.7.1-3.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11717-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11720-1 No score
cargo-c-0.8.1~git0.cce1b08-2.1 on GA media
These are all security issues fixed in the cargo-c-0.8.1~git0.cce1b08-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11720-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11721-1 No score
librav1e0-0.5.1+0-2.1 on GA media
These are all security issues fixed in the librav1e0-0.5.1+0-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11721-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11722-1 No score
spotifyd-0.3.3-2.1 on GA media
These are all security issues fixed in the spotifyd-0.3.3-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11722-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11729-1 No score
zram-generator-1.1.1~git5.8612dbb-1.1 on GA media
These are all security issues fixed in the zram-generator-1.1.1~git5.8612dbb-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11729-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11751-1 No score
afterburn-5.0.0-6.1 on GA media
These are all security issues fixed in the afterburn-5.0.0-6.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11751-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11916-1 No score
tealdeer-1.5.0+0-1.1 on GA media
These are all security issues fixed in the tealdeer-1.5.0+0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11916-1- Updated
- 2026-11-02
OSVRUSTSEC-2021-0124 No score
Data race when sending and receiving after closing a `oneshot` channel
If a tokio::sync::oneshot channel is closed (via the
oneshot::Receiver::close method), a data race may occur if the
oneshot::Sender::send method is called while the corresponding
oneshot::Receiver is awaited or calling try_recv.
When these methods are called concurrently on a closed channel, the two halves of the channel can concurrently access a shared memory location, resulting in a data race. This has been observed to cause memory corruption.
Note that the race only occurs when both halves of the channel are used
after the Receiver half has called close. Code where close is not used, or where the
Receiver is not awaited and try_recv is not called after calling close,
is not affected.
See tokio#4225 for more details.
- Record
RUSTSEC-2021-0124- Updated
- 2026-11-02
OSVSUSE-SU-2022:3949-1 No score
Security update for rustup
This update for rustup fixes the following issues:
Updated to version 1.25.1~0:
- CVE-2022-24713: Fixed Regex denial of service (bsc#1196972).
- CVE-2021-45710: Fixed tokio data race with memory corruption (bsc#1194119).
- Record
SUSE-SU-2022:3949-1- Updated
- 2026-11-02
OSVSUSE-SU-2022:3996-1 No score
Security update for 389-ds
This update for 389-ds fixes the following issues:
-
CVE-2021-45710: Fixed tokio data race with memory corruption (bsc#1194119).
-
Update to version 2.0.16~git56.d15a0a7:
-
Failure to migrate from openldap if pwdPolicyChecker present (bsc#1205146).
-
Resolve issue with checklist post migration when dds is present (bsc#1204748).
-
Improve reliability of migrations from openldap when dynamic directory services is configured (bsc#1204493).
- Record
SUSE-SU-2022:3996-1- Updated
- 2026-11-02
OSVSUSE-SU-2022:4073-1 No score
Security update for sccache
This update for sccache fixes the following issues:
Updated to version 0.3.0:
- CVE-2022-24713: Fixed Regex denial of service (bsc#1196972).
- CVE-2021-45710: Fixed tokio data race with memory corruption (bsc#1194119).
- Added hardening to systemd service(s) (bsc#1181400).
- Record
SUSE-SU-2022:4073-1- Updated
- 2026-11-02
OSVSUSE-SU-2022:4124-1 No score
Security update for 389-ds
This update for 389-ds fixes the following issues:
-
CVE-2021-45710: Fixed tokio data race with memory corruption (bsc#1194119).
-
Update to version 2.0.16~git56.d15a0a7.
-
Failure to migrate from openldap if pwdPolicyChecker present (bsc#1205146).
-
Resolve issue with checklist post migration when dds is present (bsc#1204748).
-
Improve reliability of migrations from openldap when dynamic directory services is configured (bsc#1204493).
- Record
SUSE-SU-2022:4124-1- Updated
- 2026-11-02
OSVSUSE-SU-2023:3526-1 No score
Security update for sccache
This update for sccache fixes the following issues:
- Update to version 0.4.2.
- CVE-2021-45710: Fixed a segmentation fault due to data race in tokio crate. (bsc#1194119)
- CVE-2022-24713: Fixed a ReDoS issue due to vulnerable regex crate. (bsc#1196972)
- CVE-2022-31394: Fixed a DoS issue due to the max header list size not settable. (bsc#1208553)
- CVE-2023-1521: Fixed a local privilege escalation. (bsc#1212407)
- Record
SUSE-SU-2023:3526-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
tokiocrates.io |
1.9.0 up to 1.13.1 | 1.13.1 |
tokiocrates.io |
0.1.14 up to 1.8.4 | 1.8.4 |
rust-tokioDebian:12 |
before 1.15.0-1 | 1.15.0-1 |
rust-tokioDebian:13 |
before 1.15.0-1 | 1.15.0-1 |
rust-tokioDebian:14 |
before 1.15.0-1 | 1.15.0-1 |
tokiocrates.io |
0.1.14 up to 1.8.4, 1.9.0 up to 1.13.1 | 1.8.41.13.1 |
rustupSUSE:Linux Enterprise Module for Development Tools 15 SP3 From an advisory covering 2 CVEs |
before 1.25.1~0-150300.7.13.2 | 1.25.1~0-150300.7.13.2 |
rustupopenSUSE:Leap 15.3 From an advisory covering 2 CVEs |
before 1.25.1~0-150300.7.13.2 | 1.25.1~0-150300.7.13.2 |
389-dsSUSE:Linux Enterprise Module for Server Applications 15 SP4 |
before 2.0.16~git56.d15a0a7-150400.3.15.1 | 2.0.16~git56.d15a0a7-150400.3.15.1 |
389-dsopenSUSE:Leap 15.4 |
before 2.0.16~git56.d15a0a7-150400.3.15.1 | 2.0.16~git56.d15a0a7-150400.3.15.1 |
Show 25 moreShow less
| Package | Affected | Fixed |
|---|---|---|
sccacheSUSE:Linux Enterprise Module for Development Tools 15 SP3 From an advisory covering 2 CVEs |
before 0.3.0~git5.14a4b8b-150300.7.9.1 | 0.3.0~git5.14a4b8b-150300.7.9.1 |
sccacheopenSUSE:Leap 15.3 From an advisory covering 2 CVEs |
before 0.3.0~git5.14a4b8b-150300.7.9.1 | 0.3.0~git5.14a4b8b-150300.7.9.1 |
389-dsSUSE:Linux Enterprise Module for Server Applications 15 SP3 |
before 1.4.4.19~git59.136fc84-150300.3.27.1 | 1.4.4.19~git59.136fc84-150300.3.27.1 |
389-dsopenSUSE:Leap 15.3 |
before 1.4.4.19~git59.136fc84-150300.3.27.1 | 1.4.4.19~git59.136fc84-150300.3.27.1 |
sccacheSUSE:Linux Enterprise Module for Development Tools 15 SP4 From an advisory covering 4 CVEs |
before 0.4.2~3-150400.3.3.1 | 0.4.2~3-150400.3.3.1 |
sccacheSUSE:Linux Enterprise Module for Development Tools 15 SP5 From an advisory covering 4 CVEs |
before 0.4.2~3-150400.3.3.1 | 0.4.2~3-150400.3.3.1 |
sccacheopenSUSE:Leap 15.4 From an advisory covering 4 CVEs |
before 0.4.2~3-150400.3.3.1 | 0.4.2~3-150400.3.3.1 |
sccacheopenSUSE:Leap 15.5 From an advisory covering 4 CVEs |
before 0.4.2~3-150400.3.3.1 | 0.4.2~3-150400.3.3.1 |
rust-tokioUbuntu:20.04:LTS |
All versions, plus listed versions 0.1.14-20.1.14-2build1 |
None known |
rust-tokioUbuntu:22.04:LTS |
All versions, plus listed versions 0.1.14-2build11.15.0-1 |
None known |
rust-tokioUbuntu:24.04:LTS |
All versions, plus listed versions 1.29.1-11.33.0-11.35.1-1 |
None known |
rust-tokioUbuntu:25.10 |
All versions, plus listed versions 1.43.0-11.43.1-11.47.1-2 |
None known |
rust-tokioUbuntu:26.10 |
All versions, plus listed versions 1.48.0-21.53.1-1 |
None known |
rust-tokioUbuntu:26.04:LTS |
All versions, plus listed versions 1.47.1-21.48.0-2 |
None known |
kanidmSUSE:Package Hub 15 SP6 From an advisory covering 3 CVEs |
before 1.3.3~git0.f075d13-bp156.4.1 | 1.3.3~git0.f075d13-bp156.4.1 |
kanidmopenSUSE:Leap 15.6 From an advisory covering 3 CVEs |
before 1.3.3~git0.f075d13-bp156.4.1 | 1.3.3~git0.f075d13-bp156.4.1 |
greetdopenSUSE:Tumbleweed |
before 0.8.0-2.1 | 0.8.0-2.1 |
rustscanopenSUSE:Tumbleweed |
before 2.0.1+0-1.1 | 2.0.1+0-1.1 |
rustupopenSUSE:Tumbleweed |
before 1.24.3~git1.0a74fef5-2.1 | 1.24.3~git1.0a74fef5-2.1 |
sccacheopenSUSE:Tumbleweed |
before 0.2.15~git0.6b6d2f7-8.1 | 0.2.15~git0.6b6d2f7-8.1 |
tuigreetopenSUSE:Tumbleweed |
before 0.7.1-3.1 | 0.7.1-3.1 |
cargo-copenSUSE:Tumbleweed From an advisory covering 2 CVEs |
before 0.8.1~git0.cce1b08-2.1 | 0.8.1~git0.cce1b08-2.1 |
spotifydopenSUSE:Tumbleweed |
before 0.3.3-2.1 | 0.3.3-2.1 |
zram-generatoropenSUSE:Tumbleweed From an advisory covering 2 CVEs |
before 1.1.1~git5.8612dbb-1.1 | 1.1.1~git5.8612dbb-1.1 |
tealdeeropenSUSE:Tumbleweed |
before 1.5.0+0-1.1 | 1.5.0+0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2021-45710 is a high vulnerability (CVSS 8.1) in Tokio, published November 16, 2021. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.24%, the 69th percentile. Fixed in tokio 1.13.1.
References
rustsec.org/advisories/RUSTSEC-2021-0124.html
raw.githubusercontent.com/rustsec/advisory-db/main/crates/tokio/RUSTSEC-2021-0124.md
nvd.nist.gov/vuln/detail/CVE-2021-45710
github.com/tokio-rs/tokio/issues/4225
github.com/advisories/GHSA-fg7r-2g4j-5cgr
security-tracker.debian.org/tracker/CVE-2021-45710
Show 32 moreShow less
github.com/tokio-rs/tokio
crates.io/crates/tokio
suse.com/support/update/announcement/2022/suse-su-20223949-1
bugzilla.suse.com/1194119
bugzilla.suse.com/1196972
suse.com/security/cve/CVE-2021-45710
suse.com/security/cve/CVE-2022-24713
suse.com/support/update/announcement/2022/suse-su-20223996-1
bugzilla.suse.com/1204493
bugzilla.suse.com/1204748
bugzilla.suse.com/1205146
suse.com/support/update/announcement/2022/suse-su-20224073-1
bugzilla.suse.com/1181400
suse.com/support/update/announcement/2022/suse-su-20224124-1
suse.com/support/update/announcement/2023/suse-su-20233526-1
bugzilla.suse.com/1208553
bugzilla.suse.com/1212407
suse.com/security/cve/CVE-2022-31394
suse.com/security/cve/CVE-2023-1521
ubuntu.com/security/CVE-2021-45710
cve.org/CVERecord?id=CVE-2021-45710
lists.opensuse.org/archives/list/[email protected]/thread/5D6EJD2U437T6U4EHNYRU44B2UOGLUUB
bugzilla.suse.com/1191031
bugzilla.suse.com/1210356
suse.com/security/cve/CVE-2023-26964
suse.com/security/cve/CVE-2018-25023
suse.com/security/cve/CVE-2020-35905
suse.com/security/cve/CVE-2020-36465
suse.com/security/cve/CVE-2021-27378
suse.com/security/cve/CVE-2021-32714
suse.com/security/cve/CVE-2021-32715
suse.com/security/cve/CVE-2021-38191