{"id":"MAL-2025-191943","summary":"Malicious code in zmaker (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (2f4ac88a121488df2fdfa1cb5409f3443f658a30d679f20acc41dd2c656bd3b8)\nCampaign is split into multiple packages that altogether exfiltrates data from desktop Telegram application.\n\n1. \"pyapiepo\" is a cover package that provides some useless features BUT also imports \"zscaner\"\n2. \"zscaner\", when imported, automatically runs a function that is an entry point to the whole process; it uses the \"scan\" from \"reqinstall\" to walk through directories. The package also provides main logic: filtering files, triggering archiving directories and exfiltrating them. \n3. \"reqinstall\" ensures \"requests\" are installed and provides a directory tree scanning function.\n4. \"zmaker\" provides functions to build archives from collected files.\n5. \"zsender\" provides functions to exfiltrate data, the remote URL and a function to deobfuscate configuration in other packages.\n\nAltogether, they look for \"Telegram Desktop\" folder, archive user data stored there and exfiltrate to a remote location.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2025-04-zscaner\n\n\nReasons (based on the campaign):\n\n\n - target:telegram\n\n\n - exfiltration-generic\n\n\n - The malicious code is intentionally included in a dependency of the package\n","modified":"2025-12-12T20:41:28.676419Z","published":"2025-04-20T12:05:56Z","database_specific":{"iocs":{"ips":["77.91.76.45"],"urls":["http://77.91.76.45:100/OPEN"]},"malicious-packages-origins":[{"source":"kam193","id":"pypi/2025-04-zscaner/zmaker","import_time":"2025-12-02T22:30:55.796516603Z","modified_time":"2025-04-20T12:05:56Z","ranges":[{"events":[{"introduced":"0"}],"type":"ECOSYSTEM"}],"sha256":"cc08fc76d6faec922ae26ff6b70f2b10cfade2e5225d2fe36d35425bd98ed4dd"},{"import_time":"2025-12-02T23:07:18.840307374Z","modified_time":"2025-04-20T12:05:56Z","ranges":[{"events":[{"introduced":"0"}],"type":"ECOSYSTEM"}],"sha256":"2f4ac88a121488df2fdfa1cb5409f3443f658a30d679f20acc41dd2c656bd3b8","source":"kam193","id":"pypi/2025-04-zscaner/zmaker"},{"sha256":"62a2a2dff55d2a7df65a09c7d1154fe6fed0c304d25654de24d3640d367607e6","source":"kam193","versions":["1.0.3","1.0.4"],"id":"pypi/2025-04-zscaner/zmaker","import_time":"2025-12-10T21:38:58.003278769Z","modified_time":"2025-04-20T12:05:56Z"}]},"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/zmaker"}],"affected":[{"package":{"name":"zmaker","ecosystem":"PyPI","purl":"pkg:pypi/zmaker"},"versions":["1.0.3","1.0.4"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/zmaker/MAL-2025-191943.json"}}],"schema_version":"1.7.3","credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"]},{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}