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

Malicious Rust Crate 'time_calibrators' Exfiltrates Environment Variables

Amit Schendel
Amit Schendel
Senior Security Researcher

Mar 5, 2026·5 min read·19 visits

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.

More Reports

•12 minutes ago•CVE-2026-56677
8.6

CVE-2026-56677: Unauthenticated Server-Side Request Forgery in 9Router OIDC Test Endpoint

A high-severity security vulnerability exists in 9Router, an AI router and token saver dashboard. When dashboard authentication features are disabled or left in default configurations, the application exposes administrative testing routines directly to the public internet. Unauthenticated network adversaries can exploit the OIDC configuration validation endpoint to initiate arbitrary HTTP requests, routing unauthorized traffic to local loops, adjacent container ports, and cloud resource metadata interfaces.

Amit Schendel
Amit Schendel
0 views•5 min read
•about 1 hour ago•CVE-2026-64849
9.3

CVE-2026-64849: Server-Side Request Forgery (SSRF) in MLflow Webhooks via DNS Rebinding

CVE-2026-64849 is a critical Server-Side Request Forgery (SSRF) vulnerability affecting MLflow tracking servers prior to version 3.15.0. It allows unauthenticated remote attackers to bypass outbound request destination filters using DNS rebinding or HTTP redirects. This exposure risks compromising sensitive cloud infrastructure metadata and internal microservices.

Alon Barad
Alon Barad
2 views•5 min read
•about 2 hours ago•CVE-2026-69146
6.5

CVE-2026-69146: Missing Authorization Bypass in MLflow Basic Authentication Middleware

This technical report details a missing authorization vulnerability (CVE-2026-69146 / GHSA-3p64-6gvh-82v5) affecting the MLflow platform from version 3.13.0 to 3.15.0. When MLflow is configured with the built-in basic-auth plugin, authenticated users can bypass run-level UPDATE authorization checks, enabling unauthorized dataset and model lineage metadata injection.

Alon Barad
Alon Barad
2 views•7 min read
•about 3 hours ago•CVE-2026-69148
7.1

CVE-2026-69148: Broken Object Level Authorization (BOLA) in MLflow Model Registry

MLflow prior to version 3.15.0 fails to perform proper authorization checks when registering model versions, allowing authenticated users with access to a registered model to link and access artifacts from runs and models belonging to other users without authorization.

Amit Schendel
Amit Schendel
4 views•7 min read
•about 4 hours ago•CVE-2026-59893
7.5

CVE-2026-59893: Regular Expression Denial of Service in sqlparse Lexer

A high-severity Regular Expression Denial of Service (ReDoS) vulnerability in the sqlparse Python library prior to version 0.6.0 allows unauthenticated remote attackers to trigger CPU exhaustion and application denial of service via crafted SQL inputs containing unmatched dollar-quoted literals or unclosed multiline comments.

Alon Barad
Alon Barad
4 views•6 min read
•about 5 hours ago•GHSA-FHGH-WQ4Q-R37X
7.8

GHSA-FHGH-WQ4Q-R37X: Remote Code Execution via Sigstore Signature Verification Bypass in uniget CLI

A high-severity logic inversion flaw in the uniget CLI completely bypasses Sigstore cryptographic signature verification on metadata files by default. If an attacker can poison the package metadata cache or repository, they can execute arbitrary OS commands under the privileges of the active user.

Alon Barad
Alon Barad
5 views•5 min read