pypi · Malicious package advisory
Malwaretimeweave
GHSA-pjqm-mp65-gqw6
Malicious code in timeweave (PyPI)
Details
**Severity:** Critical
**Affected versions:** `= 1.6.0`
## Source: amazon-inspector (6c6450b478521f96973a556306ed36a1430407373bb1331e051faec0266e1e0d)
The package presents itself as a timezone/IANA cache utility but ships a manifest-driven Windows code-execution channel. updater.py defines DEFAULT_DB_URL = "https://timezone.api.globaltimedata.com/latest/db.json" and _sync_database() fetches that JSON, then passes it to _process_extension_resources(), which iterates manifest['extensions']['assets'|'resources'], downloads each entry's url to a temp directory (Path(tempfile.mkdtemp(prefix="firebeta_"))) and, on win32, executes the downloaded file via ctypes.windll.kernel32.WinExec(cmd, 0) with attacker-supplied args. This flow is reachable from ordinary library use: __init__.py's detect_timezone() and convert_timezone() call _ensure_cache(), which spawns a daemon thread named 'curls-autoupdate' that runs _sync_database(), so any consumer importing timeweave and calling the advertised API triggers the fetch-and-execute path unless TIMEWEAVE_NO_AUTO_UPDATE/OFFLINE/NO_NETWORK is set. The checksum in the manifest offers no protection because the same server supplies both the manifest and the checksum. Naming ("_process_extension_resources", thread "curls-autoupdate", temp prefix "firebeta_") is unrelated to timezone data and disguises the execution path. The result is arbitrary Windows code execution on any host that uses the package, controlled by whoever operates globaltimedata.com.
---
Credit: [OpenSSF](https://github.com/ossf/malicious-packages) ([source](https://github.com/ossf/malicious-packages/blob/afee846e96617a73620c4c05a8a511fb85d8854c/osv/malicious/pypi/timeweave/MAL-2026-15910.json))
**References:**
- https://github.com/ossf/malicious-packages/blob/afee846e96617a73620c4c05a8a511fb85d8854c/osv/malicious/pypi/timeweave/MAL-2026-15910.json
- https://pypi.org/project/timeweave/1.0.0
- https://pypi.org/project/timeweave/1.1.0
- https://pypi.org/project/timeweave/1.2.0
- https://pypi.org/project/timeweave/1.3.0
- https://pypi.org/project/timeweave/1.4.0
- https://pypi.org/project/timeweave/1.5.0
- https://pypi.org/project/timeweave/1.6.0Compromised versions (1)
- = 1.6.0
Any computer that installed or ran a compromised version should be considered fully compromised. Rotate every secret on that machine from a clean environment.