Mar 5, 2026·5 min read·8 visits
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.
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.
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.
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.
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.
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.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N| Product | Affected Versions | Fixed Version |
|---|---|---|
time_calibrators crates.io | * | (Removed) |
| Attribute | Detail |
|---|---|
| Attack Vector | Network (Supply Chain) |
| CWE | CWE-506 (Embedded Malicious Code) |
| Impact | Critical (Credential Theft) |
| CVSS | Critical (Unassigned) |
| Exploit Status | Weaponized |
| Campaign | SyncFuture |
The product contains code that appears to be malicious in nature.
A vulnerability in the Slack and Mattermost platform adapters for NousResearch hermes-agent permits an unauthenticated remote attacker to execute arbitrary mass mentions. By leveraging prompt injection, an attacker can bypass output sanitization logic and trigger workspace-wide notification exhaustion.
CVE-2026-9306 is a critical unauthenticated Insecure Direct Object Reference (IDOR) vulnerability located in the QuantumNous new-api application, affecting versions up to and including 0.12.1. The flaw is caused by improper middleware ordering combined with a lack of object-level authorization checks. This allows remote, unauthenticated attackers to retrieve sensitive Midjourney images belonging to other users by supplying a valid task identifier.
The instagrapi library prior to version 2.6.9 contains an improper input validation vulnerability within its challenge handling mechanism. Maliciously crafted server responses can manipulate the client into forwarding session cookies and credentials to an external attacker-controlled domain.
GHSA-QQQM-5547-774X is a critical path traversal vulnerability in the FileBrowser Quantum application, specifically within the Go backend package. The vulnerability resides in the HTTP handler responsible for processing bulk file modifications via the public API. Unauthenticated attackers can exploit an order-of-operations flaw in the path sanitization logic to bypass intended directory restrictions. This allows adversaries to arbitrarily read, move, and overwrite files on the underlying filesystem by supplying specially crafted HTTP PATCH requests.
The qs query string parsing and serialization library for Node.js is vulnerable to a synchronous Denial of Service (DoS) attack. The vulnerability manifests as a process-terminating TypeError when processing arrays with null or undefined elements under specific configuration parameters.
The aiosend library prior to version 3.0.6 contains a pre-authentication Denial of Service (DoS) vulnerability in its webhook handling mechanism. The software processes and deserializes incoming JSON payloads before verifying the cryptographic signature, allowing unauthenticated attackers to exhaust server CPU and memory resources by sending large, complex payloads.