# CVE-2026-115567: Tokio race condition in time driver use-after-free

Source: https://junglewise.ai/threats/cve-2026-115567-tokio-is-a-runtime-for-writing-applications-with-rust-in-1-54-0  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-23. Updated: 2026-10-23  
License: CC BY 4.0 with a link back

CVE-2026-115567 · Severity: medium · CVSS 4 · Published 2026-10-23

Tokio is an async runtime library for Rust applications. A race condition in version 1.54.0 between interval timer polling and the multi-threaded scheduler's time driver can cause memory corruption or panics. Applications using Interval timers may experience crashes or undefined behavior.

Technologies: [tokio (crates.io)](https://junglewise.ai/threats/technologies/tokio). Vendors: [crates.io](https://junglewise.ai/threats/vendors/crates-io).

## Quick answers

**Is CVE-2026-115567 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-115567 being exploited in the wild.

**How severe is CVE-2026-115567?** Medium severity, with a CVSS score of 4, published 23 October 2026.

**Which products and versions are affected?** tokio (crates.io) = 1.54.0, SEMVER:introduced=1.54.0,fixed=1.54.1; Tokio 1.54.0.

**Is there a fix for CVE-2026-115567?** Yes. tokio (crates.io): upgrade to 1.54.1 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-115567 attacked?** It is attacked with local access, in a software library.

**Am I affected by CVE-2026-115567?** Check whether you run tokio (crates.io) or Tokio at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- tokio (crates.io): upgrade to 1.54.1 or later

  ```sh
  cargo update -p tokio
  ```


## Technical details

A race condition exists between tokio::time::Interval::poll_tick and the time driver's StateCell::fire, where dropping an elapsed timer entry without synchronizing with the driver thread creates a use-after-free on the timer's waker and task state. The vulnerability affects multi-threaded runtime configurations and manifests as unsafe memory access despite Rust's type system, leading to assertion failures or heap corruption.

## Affected products

- Tokio Tokio 1.54.0

## Identifiers

- CVE-2026-115567
- GHSA-5wjr-9356-4wc8
- RUSTSEC-2026-0384

## Timeline

- 2026-10-23: disclosed
- 2026-10-21: patched: Revert fix committed before public disclosure

## References

- [https://github.com/tokio-rs/tokio/commit/2b4eba7833864c04ecd2f3e5f4a97ff4f6fa28d0](https://github.com/tokio-rs/tokio/commit/2b4eba7833864c04ecd2f3e5f4a97ff4f6fa28d0)
- [https://github.com/tokio-rs/tokio/commit/5ed619bbaba87357ee5103d71b75e7c84cad99c9](https://github.com/tokio-rs/tokio/commit/5ed619bbaba87357ee5103d71b75e7c84cad99c9)

## Related threats

- [Tokio race condition in Interval time driver](https://junglewise.ai/threats/rustsec-2026-0384-race-condition-in-tokio-time-interval-on-tokio-v1-54-c6906742)
- [tokio AsyncFd constructors violate I/O safety](https://junglewise.ai/threats/rustsec-2026-0386-asyncfd-new-and-related-constructors-violate-i-o-5c953f63)
- [Tokio broadcast channel calls clone in parallel, but does not require `Sync`](https://junglewise.ai/threats/tokio-broadcast-channel-calls-clone-in-parallel-but-does-not-require-7d58a702)
- [RUSTSEC-2025-0023 - Broadcast channel calls clone in parallel, but does not require `Sync`](https://junglewise.ai/threats/rustsec-2025-0023-broadcast-channel-calls-clone-in-parallel-but-does-22da8233)
- [`tokio::io::ReadHalf<T>::unsplit` is Unsound](https://junglewise.ai/threats/tokio-io-readhalf-t-unsplit-is-unsound-68916389)
