-= Per source details. Do not edit below this line.=-
The package's setup.py copies a telemetry.pth file into site-packages so every Python interpreter startup on the host auto-imports telemetryinit, which spawns a daemon thread invoking telemetrytransport.Client.initialize(). That client selects a platform-keyed asset path (/pkg/package, /pkg/package-arm64, /pkg/loadermac, /pkg/package.exe) from a list of anonymous Cloudflare Workers mirrors (package-proxy.cf5oobworker.workers.dev, cf8oobworker/cf12oobworker/cf17-ddb/cf25-6eb.workers.dev), downloads the binary with no version pinning or hash verification, chmods it 0o755, and executes it (Windows uses ctypes.windll.kernel32 CreateProcess). A fallback ServiceDiscovery routine opens raw UDP sockets to 8.8.8.8/1.1.1.1 and issues TXT lookups against tin/tina/ldr/win.dl.well1.site, concatenating numbered subdomain segments and base64-decoding them to reconstruct download endpoints — a DNS-tunneled C2 channel that survives HTTP egress filtering. The package self-describes as a Sentry-style analytics SDK (Level, DSN, Envelope, Hub, DISABLETELEMETRY opt-out) with placeholder metadata (Author: Platform Engineering, Summary: Internal SDK module); the analytics surface is a cover story for the download-and-execute chain. The.pth mechanism persists execution outside the package's own import path, so uninstalling the package's modules does not stop the interpreter-startup hook until the.pth file itself is removed from site-packages.
Package presents little functionality, but excessive fake 'telemetry' module. This fake telemetry is used to download and run malicious executables. Code is designed to survive different blocks: first, there is an attempt to download the executable from one of five Cloudflare Workers. If it's not successful, the code falls back to download using DNS: first, it gets a TXT record from one of c..dl.well1[.]site domains, depending on the system. This record returns a number, which is then used to iterate over domains in the form <0...n>..dl.well1[.]site and reconstruct the encoded executable from their TXT records. The downloaded binary is then executed and removed afterward. Using a PTH file ensures persistence and runs on every Python start. In this campaign, versions 0.0.1 hold disarmed code (without the necessary configuration), which is completed in further updates.
This is a continuation of the 2026-07-haproxy-config-client campaign.
Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.
Campaign: 2026-07-andreiiiiiii_i
Reasons (based on the campaign):
The package contains code to exfiltrate basic data from the system, like IP or username. It has a limited risk.
The package overrides the install command in setup.py to execute malicious code during installation.
Downloads and executes a remote executable.
covering-tracks
persistence
abuses-pth
data-stored-in-dns
{
"malicious-packages-origins": [
{
"import_time": "2026-07-20T16:06:06.877551373Z",
"source": "kam193",
"versions": [
"0.0.1",
"8.5.3",
"8.5.4"
],
"id": "pypi/2026-07-andreiiiiiii_i/python-devplatform-client",
"modified_time": "2026-07-20T14:11:29.731509Z",
"sha256": "00edd685ee9e9d7b4bab294f11c583434d683b963af5df00fbb1c4eb6df176e0"
},
{
"import_time": "2026-07-20T17:01:49.035133256Z",
"source": "kam193",
"versions": [
"0.0.1",
"8.5.3",
"8.5.4"
],
"id": "pypi/2026-07-andreiiiiiii_i/python-devplatform-client",
"modified_time": "2026-07-20T14:11:29.731509Z",
"sha256": "2b75d4d8e3c822aa82b716e6752c0901447845d442973ce9bc35c78b9c81c78a"
},
{
"import_time": "2026-08-04T21:33:12.871719792Z",
"source": "amazon-inspector",
"versions": [
"8.5.3"
],
"id": "IN-MAL-2026-010997",
"modified_time": "2026-08-04T21:17:22Z",
"sha256": "6d5a2ab0ca1218bc9891e144175e097c4971783defbb7dbfc5effe0aacb4a4f0"
},
{
"import_time": "2026-08-04T21:33:12.827203784Z",
"source": "amazon-inspector",
"versions": [
"8.5.4"
],
"id": "IN-MAL-2026-010996",
"modified_time": "2026-08-04T21:17:13Z",
"sha256": "8daa66fc6fa92869318e5a544d82fab2d5dff870dc4c6784f28733f84441415a"
},
{
"import_time": "2026-08-05T07:06:44.935903038Z",
"id": "IN-MAL-2026-013387",
"versions": [
"0.0.1"
],
"source": "amazon-inspector",
"modified_time": "2026-08-05T06:15:52Z",
"sha256": "f0ce9b74244d2517ccba2c761ce516e374def55d30df80d4ec108b9fbfe7a5c1"
}
],
"iocs": {
"domains": [
"package-proxy.cf8oobworker.workers.dev",
"package-proxy.cf5oobworker.workers.dev",
"package-proxy.cf25-6eb.workers.dev",
"package-proxy.cf17-ddb.workers.dev",
"win.dl.well1.site",
"tina.dl.well1.site",
"tin.dl.well1.site",
"ldr.dl.well1.site"
]
}
}"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/python-devplatform-client/MAL-2026-10916.json"
{
"evidence_files": [
{
"path": "_telemetry_init.py",
"tlsh": "b6d1a627ed151d72c547e3a698a6d1a1e32b59132e907078bddc831c1f8822782ff5bd",
"sha256": "ca829c0a64e5aae78bc2e93aeb6897b5b3a4b0b60d2266ef1ffca4aed68ed532"
},
{
"path": "_telemetry_transport.py",
"tlsh": "7ab351a6e42a6c62c247d82a4c97f143772f6c53160c64787dfc825c2f59729c2f6ee8",
"sha256": "d93b3cc1b6425b5af5d7d3820010fc1672c6dc25958f7394ebb2827863ad7b2f"
},
{
"path": "PKG-INFO",
"tlsh": "b311ab241ad2d93576f3060b6982c2b7c1728691298bb04cb8f303dd8a69d98c77e33d",
"sha256": "37370825619f814f8389ef9352ccdd45928f8b282db988265b678842133344f9"
}
],
"package_integrity": [
{
"filename": "python_devplatform_client-8.5.3.tar.gz",
"hashes": {
"sha256": "cf3c369ebc1c0298a03ed9a00d2a7eb74dbbd2e67dd7efbca6766eb2c8046778",
"blake2b_256": "5372698bea5a418fbb54ef83d5d8a1c00ceda1d321770012ac65c1d9ce6a31e7",
"md5": "c3ce1c6ea0946287efb03602c6e0b747"
}
}
]
}
[
{
"description": "The product contains code that appears to be malicious in nature.",
"cweId": "CWE-506",
"name": "Embedded Malicious Code"
},
{
"description": "The product contains code that appears to be malicious in nature.",
"cweId": "CWE-506",
"name": "Embedded Malicious Code"
},
{
"description": "The product contains code that appears to be malicious in nature.",
"cweId": "CWE-506",
"name": "Embedded Malicious Code"
}
]