MAL-2025-191729

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/flashsimplelogger/MAL-2025-191729.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2025-191729
Published
2025-08-05T16:11:02Z
Modified
2025-12-12T20:37:49.797464Z
Summary
Malicious code in flashsimplelogger (PyPI)
Details

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

Source: kam193 (8c4753ee44e481f1f689cfaeddcddaef8dcdf86fbb1db19b3fe0acc2fadac305)

It's a clone of "loguru" package which on import loads a second-stage script from loguru[.]guru. This makes a few checks and downloads the next stage, which is a code obfuscated with PyArmor with unclear behaviour.

The way the malicious code has been embedded could be called a "sophisticated" threat. The code is in the _logger.py in two places: the payload in L2242 as a long string constraint of only whitespaces, which are then transformed into bits and bytes, and later compiled and executed using "types.FunctionType" during initialisation of Core class.


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

Campaign: 2025-07-loquru

Reasons (based on the campaign):

  • typosquatting

  • obfuscation

  • clones-real-package

  • Downloads and executes a remote malicious script.

Database specific
{
    "malicious-packages-origins": [
        {
            "sha256": "4e15e4d836902748ddc1299d65d490003096ba69cc7a42f9aa54a08616c99616",
            "source": "kam193",
            "import_time": "2025-12-02T22:30:55.197616772Z",
            "id": "pypi/2025-07-loquru/flashsimplelogger",
            "modified_time": "2025-08-05T16:11:02.979601Z",
            "ranges": [
                {
                    "events": [
                        {
                            "introduced": "0"
                        }
                    ],
                    "type": "ECOSYSTEM"
                }
            ]
        },
        {
            "sha256": "8c4753ee44e481f1f689cfaeddcddaef8dcdf86fbb1db19b3fe0acc2fadac305",
            "source": "kam193",
            "import_time": "2025-12-02T23:07:18.206681709Z",
            "id": "pypi/2025-07-loquru/flashsimplelogger",
            "modified_time": "2025-08-05T16:11:02.979601Z",
            "ranges": [
                {
                    "events": [
                        {
                            "introduced": "0"
                        }
                    ],
                    "type": "ECOSYSTEM"
                }
            ]
        },
        {
            "modified_time": "2025-08-05T16:11:02.979601Z",
            "source": "kam193",
            "import_time": "2025-12-10T21:38:57.491355503Z",
            "id": "pypi/2025-07-loquru/flashsimplelogger",
            "versions": [
                "0.1.0",
                "0.2.0"
            ],
            "sha256": "29b910f6bee20818c26414d261dfd8f0c9a0e6cf428265e3497a31ec16302b94"
        }
    ],
    "iocs": {
        "urls": [
            "https://loguru.guru/version/is_match_revision",
            "https://loguru.guru/version/code"
        ],
        "domains": [
            "loguru.guru"
        ]
    }
}
References
Credits

Affected packages

PyPI / flashsimplelogger

Package

Name
flashsimplelogger
View open source insights on deps.dev
Purl
pkg:pypi/flashsimplelogger

Affected ranges

Affected versions

0.*
0.1.0
0.2.0

Database specific

source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/flashsimplelogger/MAL-2025-191729.json"