{"id":"MAL-2026-10780","summary":"Malicious code in data-parser-utils (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (e63ddac8a229de35d497a342d918dbf4255d76e932db5ac33f1cf7db1a9e1939)\nThe package's advertised parse_xml/parse_json functions invoke an internal _check_environment() routine that, after a host-uptime sandbox-evasion gate (\u003e300 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/.\u003chostname\u003e.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.\n\n## Source: kam193 (55aca4874dc8f9716a1fb1dc61088cf485bee1b7a1ec8a5dc8c19aabff2c71fd)\nIf 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.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-07-tennacity\n\n\nReasons (based on the campaign):\n\n\n - typosquatting\n\n\n - Downloads and executes a remote executable.\n\n\n - The package contains code to detect if it is running in a sandbox environment.\n\n\n - malware\n\n\n - persistence\n","modified":"2026-08-04T22:05:24.704140334Z","published":"2026-07-19T19:51:18Z","database_specific":{"iocs":{"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"],"domains":["wegoexchange.site","easyswapnow.pro","easyswasnow.pro"]},"malicious-packages-origins":[{"versions":["2.4.1"],"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"},{"modified_time":"2026-08-04T21:19:11Z","sha256":"e63ddac8a229de35d497a342d918dbf4255d76e932db5ac33f1cf7db1a9e1939","source":"amazon-inspector","versions":["2.4.1"],"id":"IN-MAL-2026-011009","import_time":"2026-08-04T21:33:13.41401823Z"}]},"references":[{"type":"EVIDENCE","url":"https://www.virustotal.com/gui/file/b60ead7581e0d36d47d2362a6843f6ffa3d5748fe7e3a76eef2942d13b3b0613/detection"},{"type":"WEB","url":"https://www.virustotal.com/gui/file-analysis/ZjIzNWQzZmZhYmMyZmQ5Njg3MWI4MmQ5OTMzYTc3YzU6MTc4NDAyMjgxMA=="},{"type":"EVIDENCE","url":"https://www.virustotal.com/gui/file/15378a183d833832b41cf28f061d6108e0145b81a8faf82f5d860828a0b99584/detection"},{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/data-parser-utils"},{"type":"PACKAGE","url":"https://pypi.org/project/data-parser-utils/2.4.1/"}],"affected":[{"package":{"name":"data-parser-utils","ecosystem":"PyPI","purl":"pkg:pypi/data-parser-utils"},"versions":["2.4.1"],"database_specific":{"cwes":[{"name":"Embedded Malicious Code","cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature."}],"indicators":{"package_integrity":[{"filename":"data_parser_utils-2.4.1-py3-none-any.whl","hashes":{"sha256":"2cf01244fbcac131fd7ec32868a6afebf53f442b60067fcf5283b1547db847d1","blake2b_256":"48fcefae7ed91ed008403e5929f18445614b14740173fef7b6ad160f2785f849","md5":"2e3db93b64b6733991179add22541a33"}},{"filename":"data_parser_utils-2.4.1.tar.gz","hashes":{"sha256":"d59f0be0fd2be4cb3ad9b57af657762d34e284fd11e70f423fa6211c339eeec5","blake2b_256":"7367b8d02bee572e26a9c04b9e0f7b18ea543f4bc34bae8a5e05712d4f3945fd","md5":"b759d75800b4023548bdcc8b82ae6fd9"}}],"evidence_files":[{"tlsh":"5a0295215c43584206b5919e0d96c871e32ea2432f32081bb9ec51a9eff5c23daf76ad","path":"data_parser/core.py","sha256":"72ada231563acc1eb81576f9ad3873b33a2b80fd463f461aa05279478f068421"}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/data-parser-utils/MAL-2026-10780.json"}}],"schema_version":"1.8.0","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"},{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}