CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



GHSA-WF45-3GPW-VRQV
Critical

Malicious Rust Crate 'time_calibrators' Exfiltrates Environment Variables

Amit Schendel
Amit Schendel
Senior Security Researcher

Mar 5, 2026·5 min read·2 visits

Weaponized

Executive Summary (TL;DR)

A malicious Rust crate named 'time_calibrators' was discovered on crates.io. It executes a build script to steal '.env' files and sends secrets to a fake 'timeapi.io' domain. Users who installed this crate must immediately rotate all exposed credentials.

The 'time_calibrators' crate, published to the Rust crates.io registry, was identified as a malicious package designed to compromise developer environments. Masquerading as a legitimate time synchronization utility, the package contained code to locate and exfiltrate sensitive credentials stored in '.env' files. The stolen data was transmitted to a remote command-and-control server designed to impersonate the legitimate 'timeapi.io' service. The package was removed within three hours of publication, limiting its spread, but represents a sophisticated supply chain attack linked to the SyncFuture espionage campaign.

Vulnerability Overview

On March 3, 2026, the Rust security team identified and removed a malicious crate named time_calibrators from the crates.io registry. This incident constitutes a Supply Chain Compromise (CWE-506: Embedded Malicious Code), where an attacker publishes a package with a deceptive name to trick developers into installing it. The package purported to be a library for time calibration but served solely as a vehicle for data exfiltration.

The attack surface in this context is the developer's local machine and Continuous Integration (CI) environments. Unlike typical software vulnerabilities that exploit bugs in valid code, this entry represents a deliberate injection of malware into the software dependency tree. The crate leveraged the trust model of the Cargo ecosystem, where dependencies are often pulled automatically based on semantic versioning or direct addition to Cargo.toml.

The primary impact is the complete compromise of development secrets. Because the malware specifically targets .env files—which conventionally store high-value secrets like API keys, database credentials, and service tokens—the potential damage extends beyond the local machine to the cloud infrastructure and third-party services accessed by those credentials.

Technical Analysis: Execution & Discovery

The malware achieves execution persistence and immediate activation through the use of a build.rs script. in the Rust ecosystem, build.rs allows packages to compile non-Rust code or perform system checks before the main package is compiled. This script runs automatically when a developer executes cargo build or cargo check, meaning the victim does not need to run the application or even import the library in their code to trigger the payload.

Upon execution, the malicious code initiates a file system reconnaissance phase (ATT&CK T1083). It recursively searches the project root and parent directories for files named .env. This targeting is specific and intentional, exploiting the common "12-factor app" pattern where configuration is stored in environment files. The code likely utilizes standard Rust file I/O libraries (std::fs, walkdir) to locate these files without raising alerts from standard antivirus software, which may view file reading within a build directory as benign behavior.

The collected data is aggregated into a payload for exfiltration. The use of a build script for this purpose is a known technique in malicious crates because it guarantees execution privileges equal to the user running the build, often bypassing runtime sandboxes or restrictions that might apply to the final compiled binary.

Network Infrastructure & Impersonation

The exfiltration mechanism employs a sophisticated masquerading technique (ATT&CK T1036.005). The malware transmits the stolen .env contents to a command-and-control (C2) server configured to mimic the legitimate service timeapi.io. Analysis indicates the use of look-alike domains such as timeapi[.]co or time-api[.]io. This masquerading serves two purposes: it evades casual inspection of network logs by developers who might expect time-related traffic from a crate named time_calibrators, and it attempts to bypass domain-based firewall rules that might allow traffic to known utility APIs.

The traffic is likely encapsulated in HTTPS POST requests, encrypting the stolen data in transit and preventing network intrusion detection systems (NIDS) from inspecting the payload content. In documented variations of this campaign, the malware includes fallback mechanisms. If the primary exfiltration domain is unreachable, it may attempt to contact other public time services or alternative C2 endpoints to ensure the data is delivered. This resilience indicates a weaponized maturity level, designed for reliability in diverse network environments.

Campaign Context: SyncFuture

Intelligence correlates time_calibrators with the "SyncFuture" espionage campaign. This threat actor is known for targeting developers in specific geographic regions, notably India and China, using a combination of malicious packages and phishing sites. The distinct behavior of impersonating time services is a hallmark of this group's tradecraft.

The SyncFuture campaign often employs a "spray and pray" approach with typosquatting, hoping to catch developers who make typing errors (e.g., typing time_calibrators instead of a legitimate package). However, the specific targeting of .env files suggests an intent to pivot from developer workstations to corporate infrastructure. By stealing cloud credentials (such as AWS_ACCESS_KEY_ID), the attackers aim to gain persistent access to production environments, bypassing the perimeter defenses that usually protect these assets.

Impact Assessment

The successful execution of this malware results in a critical breach of confidentiality. The compromised data typically includes long-lived credentials that grant administrative or privileged access to cloud resources. An attacker in possession of a valid .env file can effectively impersonate the application or the developer, allowing them to steal customer data, inject malicious code into production, or incur financial costs through resource abuse (cryptojacking).

Although the crate was removed within three hours, the "zero reported downloads" metric can be misleading in automated environments. Mirrors, caches, and automated dependency update bots might have propagated the package before its removal. Any system that attempted a build including this crate during the window of availability must be treated as fully compromised. The breach is not contained to the local machine; every service referenced in the stolen environment variables must be considered exposed.

Technical Appendix

CVSS Score
Critical/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N

Affected Systems

Rust Development EnvironmentsCI/CD PipelinesSystems with Rust toolchain installed

Affected Versions Detail

Product
Affected Versions
Fixed Version
time_calibrators
crates.io
*(Removed)
AttributeDetail
Attack VectorNetwork (Supply Chain)
CWECWE-506 (Embedded Malicious Code)
ImpactCritical (Credential Theft)
CVSSCritical (Unassigned)
Exploit StatusWeaponized
CampaignSyncFuture

MITRE ATT&CK Mapping

T1195.001Supply Chain Compromise
Initial Access
T1083File and Directory Discovery
Discovery
T1552.001Credentials in Files
Credential Access
T1036.005Masquerading
Defense Evasion
T1567Exfiltration Over Web Service
Exfiltration
CWE-506
Embedded Malicious Code

The product contains code that appears to be malicious in nature.

Known Exploits & Detection

GitHub AdvisoryAdvisory confirming the malicious behavior and removal.

Vulnerability Timeline

Malicious crate published to crates.io
2026-03-03
Malicious behavior reported by researcher
2026-03-03
Crate removed from crates.io registry
2026-03-03
RUSTSEC-2026-0031 and GHSA-wf45-3gpw-vrqv published
2026-03-04

References & Sources

  • [1]GitHub Advisory GHSA-wf45-3gpw-vrqv
  • [2]RUSTSEC-2026-0031 Advisory
  • [3]SyncFuture Espionage Campaign Analysis

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.