Email me

Rust advisories / time

Vulnerability MediumRUSTSEC-2020-0071 · time

RUSTSEC-2020-0071: Potential segfault in the time crate

Short answerA security vulnerability in the time crate: Potential segfault in the time crate. Medium severity (CVSS 6.2). Fixed in 0.2.0, 0.2.1, 0.2.2, 0.2.23, 0.2.3, 0.2.4, 0.2.5, 0.2.6: update to a fixed version.

Cratetime
TypeVulnerability (code-execution, memory-corruption)
Affected versionsBefore 0.2.0; from 0.2.1 before 0.2.1; from 0.2.2 before 0.2.2; from 0.2.3 before 0.2.3; from 0.2.4 before 0.2.4; from 0.2.5 before 0.2.5; from 0.2.6 before 0.2.6; from 0.2.7 before 0.2.23.
Fixed in0.2.0, 0.2.1, 0.2.2, 0.2.23, 0.2.3, 0.2.4, 0.2.5, 0.2.6
SeverityMedium, CVSS 6.2
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Published2020-11-18
Last changed2026-02-04
Also known asCVE-2020-26235, GHSA-wcg3-cvx6-7396
Affected functionstime::OffsetDateTime::now_local, time::OffsetDateTime::try_now_local, time::UtcOffset::current_local_offset, time::UtcOffset::local_offset_at, time::UtcOffset::try_current_local_offset, time::UtcOffset::try_local_offset_at, time::at, time::at_utc, time::now

What to do

  1. See which version you have: cargo tree -i time (it also shows which of your dependencies pulls it in).
  2. Update within your version requirement: cargo update -p time. If the fix is a newer major or minor than your requirement allows, raise it in Cargo.toml (for example time = "0.2.6") or update the dependency that pulls it in.
  3. Check again with cargo audit, or paste your Cargo.lock into our Cargo.toml checker.

Details from the advisory

Impact

The affected functions set environment variables without synchronization. On Unix-like operating systems, this can crash in multithreaded programs. Programs may segfault due to dereferencing a dangling pointer if an environment variable is read in a different thread than the affected functions. This may occur without the user's knowledge, notably in the Rust standard library or third-party libraries.

The affected functions from time 0.2.7 through 0.2.22 are:

  • time::UtcOffset::local_offset_at
  • time::UtcOffset::try_local_offset_at
  • time::UtcOffset::current_local_offset
  • time::UtcOffset::try_current_local_offset
  • time::OffsetDateTime::now_local
  • time::OffsetDateTime::try_now_local

The affected functions in time 0.1 (all versions) are:

  • time::at_utc
  • time::at
  • time::now
  • time::tzset

Non-Unix targets (including Windows and wasm) are unaffected.

Patches

Pending a proper fix, the internal method that determines the local offset has been modified to always return None on the affected operating systems. This has the effect of returning an Err on the try_* methods and UTC on the non-try_* methods.

Users and library authors with time in their dependency tree should perform cargo update, which will pull in the updated, unaffected code.

Users of time 0.1 do not have a patch and should upgrade to an unaffected version: time 0.2.23 or greater or the 0.3 series.

Workarounds

A possible workaround for crates affected through the transitive dependency in chrono, is to avoid using the default oldtime feature dependency of the chrono crate by disabling its default-features and manually specifying the required features instead.

Examples:

Cargo.toml:

chrono = { version = "0.4", default-features = false, features = ["serde"] }
chrono = { version = "0.4.22", default-features = false, features = ["clock"] }

Commandline:

cargo add chrono --no-default-features -F clock

Sources:

References

From the RustSec Advisory Database (CC0-1.0) via the OSV export, downloaded Oct 24, 2026. Severity score computed from the published CVSS vector.

Other advisories for time

Full security history of time

Up next

Same cratetime: security historyEvery advisory for this crate, and whether it is safe to use today.Read it next →

Did this answer your question?

Get the receipts by email.

What my AI agents tried this week, with the real numbers: what worked, what flopped, what made money. One email when there is something worth reading.

No spam, never sold. Every email has a one-click unsubscribe.

Popular in the shop

All 124 tools →

Browse: Bundles and kitsHome, family and schoolMoney and businessAI toolsSports and fitnessMaking and hobbiesFood and drinkIndie dev and launchTrading and quant

Free: Landing page teardown iPhone app cost calculator LLM API cost calculator Paid online: $49 Launch Check App builds Articles FAQ