{"id":"MAL-2025-994","summary":"Malicious code in threadfluent (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (2a72da681aea57683d0d6b134f0263f126dfe205810fdcfa970c9920058fcf15)\nThe package contains highly obfuscated content, that install another, downloaded from a remote location obfuscated script in the installation path of the 'requests' package, and marks it as a hidden system file. In addition, another file contains a code that imitates doing some meaningful activity.\n\nLater attempts hide the malicious code in a separated package, downloaded from Test PyPI.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2024-12-httpfluent\n\n\nReasons (based on the campaign):\n\n\n - obfuscation\n\n\n - modify-system-without-consent\n\n\n - Downloads and executes a remote malicious script.\n","modified":"2026-03-19T13:04:54.661275Z","published":"2024-12-14T16:26:57Z","database_specific":{"malicious-packages-origins":[{"import_time":"2025-02-03T18:38:09.912465323Z","source":"reversing-labs","versions":["0.1"],"id":"RLMA-2025-00535","sha256":"d31ac30b495b69ae18873a0614da6691165b3d9f694e22456986eb46f14c1c50","modified_time":"2025-02-03T17:07:59Z"},{"import_time":"2025-12-02T22:30:55.643524078Z","source":"kam193","ranges":[{"events":[{"introduced":"0"}],"type":"ECOSYSTEM"}],"id":"pypi/2024-12-httpfluent/threadfluent","sha256":"0c2925bb4bd77c07641a922cad14c876cd3bc8f46ea7683de7a1b21c2e80874b","modified_time":"2024-12-14T16:26:57Z"},{"import_time":"2025-12-02T23:07:18.685298868Z","source":"kam193","ranges":[{"events":[{"introduced":"0"}],"type":"ECOSYSTEM"}],"id":"pypi/2024-12-httpfluent/threadfluent","sha256":"2a72da681aea57683d0d6b134f0263f126dfe205810fdcfa970c9920058fcf15","modified_time":"2024-12-14T16:26:57Z"},{"import_time":"2025-12-10T21:38:57.870396204Z","source":"kam193","versions":["0.1"],"id":"pypi/2024-12-httpfluent/threadfluent","sha256":"146c6e3cdd6e7b31e1cbdb000be66fa72ea3066c7f240977f1dcc437b878a27b","modified_time":"2024-12-14T16:26:57Z"},{"import_time":"2026-03-19T12:20:33.732333367Z","source":"reversing-labs","id":"RLUA-2026-00821","sha256":"dcdb231da03efea4cb2c97850d918c2b4a8788c40a3553b9b92107a3a8e563e7","modified_time":"2026-03-18T12:19:29Z"}],"iocs":{"urls":["https://raw.githubusercontent.com/Red-haired-shanks-1337/repuests/refs/heads/main/puts.py","https://test.pypi.org/simple/httpfluent/","https://github.com/Red-haired-shanks-1337/Rwoka/raw/main/v0.1.0/httpfluent-0.1.tar.gz"]}},"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/threadfluent"}],"affected":[{"package":{"name":"threadfluent","ecosystem":"PyPI","purl":"pkg:pypi/threadfluent"},"versions":["0.1"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/threadfluent/MAL-2025-994.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"}]}