MAL-2025-994

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/threadfluent/MAL-2025-994.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2025-994
Published
2024-12-14T16:26:57Z
Modified
2025-12-12T20:43:22.983410Z
Summary
Malicious code in threadfluent (PyPI)
Details

-= Per source details. Do not edit below this line.=-

Source: kam193 (2a72da681aea57683d0d6b134f0263f126dfe205810fdcfa970c9920058fcf15)

The 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.

Later attempts hide the malicious code in a separated package, downloaded from Test PyPI.


Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.

Campaign: 2024-12-httpfluent

Reasons (based on the campaign):

  • obfuscation

  • modify-system-without-consent

  • Downloads and executes a remote malicious script.

Database specific
{
    "malicious-packages-origins": [
        {
            "modified_time": "2025-02-03T17:07:59Z",
            "import_time": "2025-02-03T18:38:09.912465323Z",
            "id": "RLMA-2025-00535",
            "sha256": "d31ac30b495b69ae18873a0614da6691165b3d9f694e22456986eb46f14c1c50",
            "versions": [
                "0.1"
            ],
            "source": "reversing-labs"
        },
        {
            "modified_time": "2024-12-14T16:26:57Z",
            "import_time": "2025-12-02T22:30:55.643524078Z",
            "ranges": [
                {
                    "events": [
                        {
                            "introduced": "0"
                        }
                    ],
                    "type": "ECOSYSTEM"
                }
            ],
            "sha256": "0c2925bb4bd77c07641a922cad14c876cd3bc8f46ea7683de7a1b21c2e80874b",
            "id": "pypi/2024-12-httpfluent/threadfluent",
            "source": "kam193"
        },
        {
            "modified_time": "2024-12-14T16:26:57Z",
            "import_time": "2025-12-02T23:07:18.685298868Z",
            "ranges": [
                {
                    "events": [
                        {
                            "introduced": "0"
                        }
                    ],
                    "type": "ECOSYSTEM"
                }
            ],
            "sha256": "2a72da681aea57683d0d6b134f0263f126dfe205810fdcfa970c9920058fcf15",
            "id": "pypi/2024-12-httpfluent/threadfluent",
            "source": "kam193"
        },
        {
            "modified_time": "2024-12-14T16:26:57Z",
            "import_time": "2025-12-10T21:38:57.870396204Z",
            "id": "pypi/2024-12-httpfluent/threadfluent",
            "sha256": "146c6e3cdd6e7b31e1cbdb000be66fa72ea3066c7f240977f1dcc437b878a27b",
            "versions": [
                "0.1"
            ],
            "source": "kam193"
        }
    ],
    "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
Credits

Affected packages

PyPI / threadfluent

Package

Affected ranges

Affected versions

0.*

0.1