{"id":"MAL-2026-13490","summary":"Malicious code in fast-hashes (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (503b750458783954b66f8dea6ee8b0300fd7db5b225280f1af432cf78c1faf6d)\nsetup.py defines a custom install command (NativeInstall.run) that decodes a base64 blob and passes it to exec(compile(...)) at install time. The decoded payload downloads an opaque binary from https://github.com/totti2188/8gp1Q7iZD3h4VW/releases/download/v1.3A/something to /tmp/something, chmods it to 0755, and Popen-launches it detached with start_new_session=True. The fetch target's GitHub account (totti2188) is unrelated to the declared package publisher, the binary is unpinned and unverified, and the fetch-and-execute logic is concealed behind a base64 blob labeled _COMPAT_PAYLOAD with a benign-sounding '_configure_native_bindings' cover story. The package's non-install code only wraps hashlib and has no legitimate need for a native binary. Any pip install of this version triggers arbitrary code execution on the installer's host under the identity of a third-party GitHub account.\n\n## Source: kam193 (658a96d4157086ae099c38b27ef8fb7d1664956a251f21d55a9d8cb208c0a8fc)\nPackage imitates name of a popula library. During installation, obfuscated code downloads a malicious executable and starts it. It then exfiltrates at least cryptocurrency wallet data, probably more.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-08-flasq\n\n\nReasons (based on the campaign):\n\n\n - typosquatting\n\n\n - The package overrides the install command in setup.py to execute malicious code during installation.\n\n\n - exfiltration-generic\n\n\n - Downloads and executes a remote executable.\n\n\n - obfuscation\n\n\n - exfiltration-crypto\n","modified":"2026-08-07T12:35:24.781450078Z","published":"2026-08-07T09:25:16Z","database_specific":{"malicious-packages-origins":[{"source":"kam193","versions":["0.1.0"],"id":"pypi/2026-08-flasq/fast-hashes","import_time":"2026-08-07T09:28:06.533855428Z","modified_time":"2026-08-07T09:25:16.339161Z","sha256":"658a96d4157086ae099c38b27ef8fb7d1664956a251f21d55a9d8cb208c0a8fc"},{"modified_time":"2026-08-07T09:36:39.060115Z","sha256":"39a077e7478e5e60661ac52b41882f4f72d91acd6777a1828f2aa28d5ccfb2ba","source":"kam193","versions":["0.1.0"],"id":"pypi/2026-08-flasq/fast-hashes","import_time":"2026-08-07T10:23:52.431119868Z"},{"id":"IN-MAL-2026-016909","import_time":"2026-08-07T12:23:26.79638423Z","modified_time":"2026-08-07T12:16:15Z","sha256":"503b750458783954b66f8dea6ee8b0300fd7db5b225280f1af432cf78c1faf6d","source":"amazon-inspector","versions":["0.1.0"]}],"iocs":{"ips":["193.70.34.101"],"urls":["https://github.com/totti2188/8gp1Q7iZD3h4VW/releases/download/v1.3A/something"]}},"references":[{"type":"EVIDENCE","url":"https://www.virustotal.com/gui/file/425f5336182e359211b5d751786d2ce1d31a673ea9c82107358a888803742649/detection"},{"type":"EVIDENCE","url":"https://tria.ge/260807-fkycrazzg1/behavioral1"},{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/fast-hashes"},{"type":"PACKAGE","url":"https://pypi.org/project/fast-hashes/0.1.0/"}],"affected":[{"package":{"name":"fast-hashes","ecosystem":"PyPI","purl":"pkg:pypi/fast-hashes"},"versions":["0.1.0"],"database_specific":{"indicators":{"evidence_files":[{"path":"setup.py","sha256":"e3060a20faca6aea91d1643fe24cd6766bd885bb84a7ecbfc9c8e24b739028a3","tlsh":"5841b67e86b625b17c54cb835017505589179b7b6c1474dcb9ee03045fcd31987fb07a"}],"package_integrity":[{"filename":"fast_hashes-0.1.0.tar.gz","hashes":{"blake2b_256":"bfa7c40dbc7c0645414e68d9d2000db5271a18f43afee00d0734d039f38c163b","md5":"4995e1c8753ee2527769e116b5e336ec","sha256":"fc7395773734883b3e79e6d2631a666fd89f9116dc9d086beb21e155bd315cec"}}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/fast-hashes/MAL-2026-13490.json","cwes":[{"description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code","cweId":"CWE-506"}]}}],"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"},{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"ANALYST"}]}