-= Per source details. Do not edit below this line.=-
The package's advertised parse_xml/parse_json functions invoke an internal _check_environment() routine that, after a host-uptime sandbox-evasion gate (>300 seconds; reads /proc/uptime on Linux, GetTickCount64 on Windows, sysctl kern.boottime on macOS), fetches a hex-encoded URL resolving to https://cdn.jsdelivr.net/gh/cryptonomad411/cool-utils/package.json, reads an OS/arch-keyed payload URL from that JSON, downloads the payload to /tmp/update (Linux/macOS) or %TEMP%/g.jse (Windows), and executes it via a Popen call using base64-encoded Python that urlretrieves and cscript-executes the dropper. The payload then installs cross-platform persistence: on Linux it writes a randomly-named unit to ~/.config/systemd/user/.service and enables it via systemctl --user enable --now; on macOS it drops a random ~/Library/LaunchAgents/.plist with RunAtLoad=true and launchctl-loads it; a ~/.cache/..lock mutex prevents re-runs. The stage-1 dispatcher URL, the string 'subprocess', shell commands (wget -q -O /tmp/update, curl -s -o /tmp/update), and the Windows dropper one-liner are stored as hex and base64 literals decoded at runtime, with no legitimate purpose for a JSON/XML parser.
If using the provided functionality like parse_json or parse_xml functions, the package will install a Mythic/Poseidon C2 framework beacon and ensure its persistence. After installation, the beacon communicates with C2 on wegoexchange[.]site for further commands.
Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.
Campaign: 2026-07-tennacity
Reasons (based on the campaign):
typosquatting
Downloads and executes a remote executable.
The package contains code to detect if it is running in a sandbox environment.
malware
persistence
{
"iocs": {
"domains": [
"wegoexchange.site",
"easyswapnow.pro",
"easyswasnow.pro"
],
"urls": [
"https://easyswapnow.pro/downloads/lix_amd.bin",
"https://easyswapnow.pro/downloads/lix_arm.bin",
"https://easyswapnow.pro/downloads/mac_amd.bin",
"https://easyswapnow.pro/downloads/mac_arm.bin",
"https://easyswasnow.pro/downloads/lix_amd.bin",
"https://easyswasnow.pro/downloads/lix_arm.bin",
"https://easyswasnow.pro/downloads/mac_amd.bin",
"https://easyswasnow.pro/downloads/mac_arm.bin",
"https://drive.google.com/uc?export=download&id=1d4zF8lnDaYCgzRrEx3WCyLTFZXVD2QBF&confirm=t",
"http://wegoexchange.site/data",
"https://cdn.jsdelivr.net/gh/cryptonomad411/cool-utils/package.json"
]
},
"malicious-packages-origins": [
{
"id": "pypi/2026-07-tennacity/data-parser-utils",
"import_time": "2026-07-19T20:20:30.622069601Z",
"modified_time": "2026-07-19T19:51:18.396925Z",
"sha256": "55aca4874dc8f9716a1fb1dc61088cf485bee1b7a1ec8a5dc8c19aabff2c71fd",
"source": "kam193",
"versions": [
"2.4.1"
]
},
{
"id": "IN-MAL-2026-011009",
"import_time": "2026-08-04T21:33:13.41401823Z",
"modified_time": "2026-08-04T21:19:11Z",
"sha256": "e63ddac8a229de35d497a342d918dbf4255d76e932db5ac33f1cf7db1a9e1939",
"source": "amazon-inspector",
"versions": [
"2.4.1"
]
}
]
}[
{
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code"
}
]
{
"evidence_files": [
{
"path": "data_parser/core.py",
"sha256": "72ada231563acc1eb81576f9ad3873b33a2b80fd463f461aa05279478f068421",
"tlsh": "5a0295215c43584206b5919e0d96c871e32ea2432f32081bb9ec51a9eff5c23daf76ad"
}
],
"package_integrity": [
{
"filename": "data_parser_utils-2.4.1-py3-none-any.whl",
"hashes": {
"blake2b_256": "48fcefae7ed91ed008403e5929f18445614b14740173fef7b6ad160f2785f849",
"md5": "2e3db93b64b6733991179add22541a33",
"sha256": "2cf01244fbcac131fd7ec32868a6afebf53f442b60067fcf5283b1547db847d1"
}
},
{
"filename": "data_parser_utils-2.4.1.tar.gz",
"hashes": {
"blake2b_256": "7367b8d02bee572e26a9c04b9e0f7b18ea543f4bc34bae8a5e05712d4f3945fd",
"md5": "b759d75800b4023548bdcc8b82ae6fd9",
"sha256": "d59f0be0fd2be4cb3ad9b57af657762d34e284fd11e70f423fa6211c339eeec5"
}
}
]
}
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/data-parser-utils/MAL-2026-10780.json"