Skip to content
Open-Source Registry

Incidents / cargo/time-sync

cargo/time-sync 0.2.4

bitbison: flagged, behavior flagged, dependencies clean, posture not checked, pipeline clean RiskcriticalVulnsnone
processes
107
operations
1.8K
packages
5
compiler runs
2
connections
1
capture
47 KB
records
3.9K
bytes / record
12.0

In 2026, the time-sync crate posed as a clock utility and uploaded developers' .env files to a fake time service.

Build behaviourconnected outside the registry

published 2026-03-04 rustsec-2026-0036build-scriptsecret-exfildotenvtime-sync
Reviewed by Bitbison: maliciousIn 2026, the time-sync crate posed as a clock utility and uploaded developers' .env files to a fake time service.

Graph

secret-exfil · critical · in time_sync_demo
3

Checks

9 of 14 clear · 3 not checked Network activity Sensitive data access and transfer
Build behavior▲▲✓✓✓✓✓✓
Supply chain○○○✓✓
Pipeline✓

Detections

2
  • Credential store contents reached a network peer
    3.166.192.53:80 › 3.166.192.53:80
    critical
  • Build script reached 3.166.192.53
    time-sync 0.2.4 › 3.166.192.53:80
    medium

Detection

criticalwitnessed

Credential store contents reached a network peer

Possible credential exposure

Subject
3.166.192.53:80
Destination
3.166.192.53:80
Jobs
build
Rule
secret-exfil · time-sync-0.2.4

Witness chain

  1. /home/bb/work/time-sync-0.2.4/.env
    source
  2. 3.166.192.53:80via /home/bb/work/time-sync-0.2.4/target/build/debug/build/time-sync-bdcdb4cd82b77c46/build-script-build
    • Sensitive-file read linked to a network connectionfrom /home/bb/work/time-sync-0.2.4/.env

      Credential store contents linked to this connection through build-time code: /home/bb/work/time-sync-0.2.4/.env

    sink
  3. time_sync_demo-bcd94760e7a49833build
    artifact

Evidence

  • Credential store contents linked to this connection through build-time code: /home/bb/work/time-sync-0.2.4/.env

In time_sync_demo

Loading the graph

Processes

build

systemd›sshd:›sshd-session:›…›cargo›build-script-build

Ran
/home/bb/work/time-sync-0.2.4/target/build/debug/build/time-sync-bdcdb4cd82b77c46/build-script-build
Invoked by
/usr/lib/systemd/systemd
Lineage · 11 processes
  1. systemd/usr/lib/systemd/systemd1
  2. sshd:sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups997
  3. sshd-session:sshd-session: bb [priv]2074
  4. sshd-session:sshd-session: bb@notty2129
  5. sudosudo2130
  6. shsh2132
  7. runuserrunuser -u bb -- sh -c cd '/home/bb/work/time-sync-0.2.4' && HOME='/home/bb/work' python3 scenario.py --variant build2163
  8. shsh -c cd '/home/bb/work/time-sync-0.2.4' && HOME='/home/bb/work' python3 scenario.py --variant build2164
  9. python3python3 scenario.py --variant build2165
  10. cargocargo build --features build-calibration --target-dir /home/bb/work/time-sync-0.2.4/target/build -p time-sync-demo2166
  11. build-script-build/home/bb/work/time-sync-0.2.4/target/build/debug/build/time-sync-bdcdb4cd82b77c46/build-script-build2260

Remediation

Treat the credential as exposed: revoke or rotate it, then remove the build-time code that sent it. The witness chain names the file, the processes that carried its bytes and the destination.

Detection

mediumwitnessed

Build script reached 3.166.192.53

Unexpected network connection

Subject
time-sync 0.2.4
Destination
3.166.192.53:80
Reaches
time_sync_demo-bcd94760e7a49833member
Jobs
build
Rule
egress · time-sync-0.2.4

Evidence

  1. Connection outside the process’s allowed destinationscause

    connection to 3.166.192.53:80, opened by build_script_build-bdcdb4cd82b77c46

    subject 3.166.192.53:80

    by /home/bb/work/time-sync-0.2.4/target/build/debug/build/time-sync-bdcdb4cd82b77c46/build-script-build

  2. What a build script's fetch becamesupport

    nothing came down that the build kept

  3. Connection opened by a build script or child processsupport

    the opener is the build script at /home/bb/work/time-sync-0.2.4/target/build/debug/build/time-sync-bdcdb4cd82b77c46/build_script_build-bdcdb4cd82b77c46

In time_sync_demo

Loading the graph

Processes

build

systemd›sshd:›sshd-session:›…›cargo›build-script-build

Ran
/home/bb/work/time-sync-0.2.4/target/build/debug/build/time-sync-bdcdb4cd82b77c46/build-script-build
Invoked by
/usr/lib/systemd/systemd
Lineage · 11 processes
  1. systemd/usr/lib/systemd/systemd1
  2. sshd:sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups997
  3. sshd-session:sshd-session: bb [priv]2074
  4. sshd-session:sshd-session: bb@notty2129
  5. sudosudo2130
  6. shsh2132
  7. runuserrunuser -u bb -- sh -c cd '/home/bb/work/time-sync-0.2.4' && HOME='/home/bb/work' python3 scenario.py --variant build2163
  8. shsh -c cd '/home/bb/work/time-sync-0.2.4' && HOME='/home/bb/work' python3 scenario.py --variant build2164
  9. python3python3 scenario.py --variant build2165
  10. cargocargo build --features build-calibration --target-dir /home/bb/work/time-sync-0.2.4/target/build -p time-sync-demo2166
  11. build-script-build/home/bb/work/time-sync-0.2.4/target/build/debug/build/time-sync-bdcdb4cd82b77c46/build-script-build2260

Remediation

The build script connected to the network while compiling. Nothing it downloaded was compiled, linked or run. Build the crate from what the registry ships, or accept the download after reviewing it.

Network

1 peers
  • 3.166.192.53:80 cargo/time-sync's own build code · build_script_build-bdcdb4cd82b77c46 (time-sync-0.2.4) undeclared
Dependencies7Build behaviour
ld-linux-x86-64.so.2system library
libc.so.6system library
libgcc_s.so.1system library
libm.so.6system library
libmvec.so.1system library
time-sync0.2.4build scriptnetwork3.166.192.53
time-sync-demo0.1.0
Versions1RiskVulnsPublished
0.2.4criticalnone

Raw data

capture
47 KB
records
3,902
bytes per record
12.0

Loading a sample of the capture

Want to see more? E-mail us at hello@bitbison.io about your use case.

1 of 1 jobs captured: build success · Generated 2026-10-15 · run time-sync-0.2.4

analysis 0.1.0+gba4904b311dc.dirty · graph v2

time-sync 0.2.4

maliciousCovers 0.2.4Reviewed by BitbisonUpdated 2026-10-15

In 2026, the time-sync crate posed as a clock utility and uploaded developers' .env files to a fake time service.

A time utility attempted to upload local secrets

time-sync was a malicious Rust crate distributed as a clock synchronization utility. It attempted to upload local .env files containing configuration and potentially service credentials to an attacker-controlled server. This account explains the reported attack and how to interpret Bitbison's lab detections.

The crate was published on March 4, 2026, and removed from crates.io about 50 minutes later. RustSec's advisory identifies the attempted upload but does not describe the code path that triggered it.

Related crates used a lookalike time service

time-sync was one of five malicious crates published in late February and early March 2026. The others were time_calibrator, time_calibrators, dnp3times and chrono_anchor. They posed as time utilities, including claims of clock calibration without Network Time Protocol (NTP), while attempting to send .env files to infrastructure impersonating the legitimate timeapi.io service.

Socket researcher Kirill Boychenko documented the code in chrono_anchor. Parameter validation and an optional synchronization helper could trigger its upload, including when those paths ran in tests. The code contacted the real timeapi.io as cover traffic and used curl to upload .env to the lookalike domain timeapis.io over an unencrypted connection.

Reported downloads did not establish actual use

At the time of removal, RustSec reported no evidence of actual downloads or use across the five crates and no dependent crates on crates.io. Socket recorded a registry count of 66 downloads for chrono_anchor. That count does not establish that its malicious code ran. According to RustSec, chrono_anchor remained available for approximately six days before removal following Socket's report.

Bitbison detected the upload in a substitute crate

We reproduced the file upload in our lab with a substitute time-sync crate and a .env file containing test data. Our substitute uploads the file from its build script so the behavior runs during compilation. This trigger is specific to our reproduction.

The recorded run contains two findings:

  1. The substitute crate's build script connected to a remote host.
  2. The build script read the project's .env file and sent its contents to that host.

Use the detections below to inspect the processes, file access and connections from this lab run. The fixture measures outbound transmission; it does not establish that the receiving application accepted or stored the file.

References