{"id":"MAL-2025-191618","summary":"Malicious code in aiohttp-ssl (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (212da09ca68167bc40e86f1c838fe5aeb5a6656da5ecbbdb5d17df01b2c262d8)\nPackages silently decrypt content hidden in a dependency and load them as Python extension modules. \n\nIn the first wave, those are copies of legitimate aiohttp and aiohappyeyeballs packages.\nIn the second wave, malicious packages created good-looking forks of legitimate rich and pigments packages.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2025-10-asynhttp\n\n\nReasons (based on the campaign):\n\n\n - typosquatting\n\n\n - exfiltration-generic\n\n\n - obfuscation\n\n\n - clones-real-package\n\n\n - native-extension\n","modified":"2026-03-19T12:49:49.318428Z","published":"2025-10-23T10:43:42Z","database_specific":{"malicious-packages-origins":[{"versions":["3.13.1"],"id":"RLMA-2025-05585","import_time":"2025-12-02T09:09:35.999004688Z","modified_time":"2025-12-01T12:54:02Z","sha256":"b61677d7a34093d0a5edbc9eb75b0f7305c4dca9399b309e7e9d2be62f9ed50f","source":"reversing-labs"},{"source":"kam193","versions":["3.13.1"],"id":"pypi/2025-10-asynhttp/aiohttp-ssl","import_time":"2025-12-02T22:30:54.89132018Z","modified_time":"2025-10-23T10:43:42.146523Z","sha256":"045a016b903f7adf7723ae5e0add61cef3cc7156a3b92ecc0ab23b156f5bba79"},{"id":"pypi/2025-10-asynhttp/aiohttp-ssl","import_time":"2025-12-02T23:07:17.93526495Z","modified_time":"2025-10-23T10:43:42.146523Z","sha256":"afccfa12a7291508291284fab456364a79066f1bca14372f85e1e503a7ba5dc8","source":"kam193","versions":["3.13.1"]},{"modified_time":"2025-10-23T10:43:42.146523Z","sha256":"212da09ca68167bc40e86f1c838fe5aeb5a6656da5ecbbdb5d17df01b2c262d8","source":"kam193","versions":["3.13.1"],"id":"pypi/2025-10-asynhttp/aiohttp-ssl","import_time":"2025-12-10T18:45:05.205935379Z"},{"sha256":"99f1ac661fd45048029818ec876ec7f69228170ea117ffcaef42fd5838f239ac","source":"reversing-labs","id":"RLUA-2026-00044","import_time":"2026-03-19T12:19:20.867229086Z","modified_time":"2026-03-18T12:10:48Z"}]},"references":[{"type":"WEB","url":"https://www.cert.at/en/blog/2025/10/how-typosquatting-tricked-me-a-bit"},{"type":"ARTICLE","url":"https://www.cert.at/en/blog/2025/10/how-typosquatting-tricked-me-a-bit"},{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/aiohttp-ssl"}],"affected":[{"package":{"name":"aiohttp-ssl","ecosystem":"PyPI","purl":"pkg:pypi/aiohttp-ssl"},"versions":["3.13.1"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/aiohttp-ssl/MAL-2025-191618.json"}}],"schema_version":"1.7.5","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"},{"name":"ReversingLabs","contact":["https://www.reversinglabs.com"],"type":"FINDER"}]}