{"id":"MAL-2025-191617","summary":"Malicious code in aiohttp-openssl (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (67b219a81e6b2dd7db78b4b223da914ee7baefd0ab056940d3af0bc3b47846a0)\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:58.523503Z","published":"2025-10-24T08:30:46Z","database_specific":{"malicious-packages-origins":[{"sha256":"35d37db96c51b64ae5d8de5ae993f0f59b34cd5ccdde92a279efff2e85cd8a55","source":"reversing-labs","versions":["3.13.1"],"id":"RLMA-2025-05584","import_time":"2025-12-02T09:09:35.879503319Z","modified_time":"2025-12-01T12:54:01Z"},{"id":"pypi/2025-10-asynhttp/aiohttp-openssl","import_time":"2025-12-02T22:30:54.890597897Z","modified_time":"2025-10-24T08:30:46.46558Z","sha256":"92f57455ebf461496d8be2499befaa79fe9c3a837220453d86a83e066deed343","source":"kam193","versions":["3.13.1"]},{"id":"pypi/2025-10-asynhttp/aiohttp-openssl","import_time":"2025-12-02T23:07:17.934504723Z","modified_time":"2025-10-24T08:30:46.46558Z","sha256":"c043876b5e096c7a7871643bcb7f9a6c41f5b561e57792478e86fe68eb7452ce","source":"kam193","versions":["3.13.1"]},{"versions":["3.13.1"],"id":"pypi/2025-10-asynhttp/aiohttp-openssl","import_time":"2025-12-10T18:45:05.205088296Z","modified_time":"2025-10-24T08:30:46.46558Z","sha256":"67b219a81e6b2dd7db78b4b223da914ee7baefd0ab056940d3af0bc3b47846a0","source":"kam193"},{"id":"RLUA-2026-00043","import_time":"2026-03-19T12:19:20.775061291Z","modified_time":"2026-03-18T12:10:48Z","sha256":"694360ba724d11336471a4a39de2f3bc4e2c7870492b44d48c14fcb8a08b0a8f","source":"reversing-labs"}]},"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-openssl"}],"affected":[{"package":{"name":"aiohttp-openssl","ecosystem":"PyPI","purl":"pkg:pypi/aiohttp-openssl"},"versions":["3.13.1"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/aiohttp-openssl/MAL-2025-191617.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"}]}