MAL-2026-10991

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/make-helper/MAL-2026-10991.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2026-10991
Published
2026-07-22T09:26:25Z
Modified
2026-08-04T22:05:26Z
Summary
Malicious code in make-helper (PyPI)
Details

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

Source: amazon-inspector (bb2e6560048133cc76a9e325b02b2719f89d59c500d09409bb10b6f4afb14401)

On import dev_helper, the package's init.py starts a daemon thread that runs decryptor.decrypt_and_run(): it fetches an AES-GCM key from the hardcoded endpoint https://key-2qfm.vercel.app/api/key, decrypts the shipped dev_helper/encrypted.bin (16.9 KB ciphertext, nonce prepended), and executes the plaintext via exec(plaintext, {'name': 'main'}). The auto-start is gated to skip interactive Python sessions and PYTHONSTARTUP contexts, so the payload fires in CI and production imports but stays hidden from REPL inspection. Logging is disabled (logging.disable(logging.CRITICAL)) and errors are swallowed. The package's stated purpose ("a helpful developer utility") does not disclose any of this, and the true payload is opaque without the remote key, allowing the operator of key-2qfm.vercel.app to rotate the executed code at will.

Source: kam193 (39bf40d5056dc821bcedf5fcc304e26d9e6566f5beb508b6a01874b49d32becd)

The package embeds encrypted code that, during import, is decrypted using an externally sourced password. The recovered code is executed and starts a bot capable of exfiltrating local files.


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

Campaign: 2026-07-make-helper

Reasons (based on the campaign):

  • files-exfiltration

  • obfuscation

  • uses-telegram-bot

Database specific
{
    "iocs": {
        "domains": [
            "key-2qfm.vercel.app"
        ],
        "urls": [
            "https://key-2qfm.vercel.app/api/key"
        ]
    },
    "malicious-packages-origins": [
        {
            "id": "pypi/2026-07-make-helper/make-helper",
            "import_time": "2026-07-22T10:21:29.652354006Z",
            "modified_time": "2026-07-22T09:26:25.968438Z",
            "sha256": "39bf40d5056dc821bcedf5fcc304e26d9e6566f5beb508b6a01874b49d32becd",
            "source": "kam193",
            "versions": [
                "0.1.0",
                "0.1.1"
            ]
        },
        {
            "id": "IN-MAL-2026-011096",
            "import_time": "2026-08-04T21:33:16.618866845Z",
            "modified_time": "2026-08-04T21:31:54Z",
            "sha256": "15330c3df4c6827204ab0d657cd2c4c834b3cec33e7f453fe1cb108a2d0809db",
            "source": "amazon-inspector",
            "versions": [
                "0.1.0"
            ]
        },
        {
            "id": "IN-MAL-2026-011042",
            "import_time": "2026-08-04T21:33:14.816063389Z",
            "modified_time": "2026-08-04T21:24:06Z",
            "sha256": "bb2e6560048133cc76a9e325b02b2719f89d59c500d09409bb10b6f4afb14401",
            "source": "amazon-inspector",
            "versions": [
                "0.1.1"
            ]
        }
    ]
}
References
Credits

Affected packages

PyPI / make-helper

Package

Name
make-helper
View open source insights on deps.dev
Purl
pkg:pypi/make-helper

Affected ranges

Affected versions

0.*
0.1.0
0.1.1

Database specific

cwes
[
    {
        "cweId": "CWE-506",
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code"
    },
    {
        "cweId": "CWE-506",
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code"
    }
]
indicators
{
    "evidence_files": [
        {
            "path": "dev_helper/decryptor.py",
            "sha256": "d5fc22ead16f5b31c527843136edf6d6437608d2ea5fbae5260eae9b17417e77",
            "tlsh": "a821f09e6c653421d342d29c4579cd917329be277a068134becc0794afa60b184f55d8"
        },
        {
            "path": "setup.py",
            "sha256": "fe729efd51aaee1f2b91ab6e0ff52904be4aec7127287183728f28f8e5d96cd8",
            "tlsh": "47e020a14d19a2501a81dd662c7b50430e36793f3f6471c8ba5813543fda28ed73706a"
        }
    ],
    "package_integrity": [
        {
            "filename": "make_helper-0.1.0-py3-none-any.whl",
            "hashes": {
                "blake2b_256": "d41d0f6e515b7ebf86a75378619081cd6958ed2b7f5a43e7117febc699667561",
                "md5": "9c87468878e932976b7abcfb55e3ab4d",
                "sha256": "f2c0878824376940ed3592478439c3756d3f920b8fa5d76a70426ae187b9cb87"
            }
        },
        {
            "filename": "make_helper-0.1.0.tar.gz",
            "hashes": {
                "blake2b_256": "25ed0c34a9756b5d0552e0b997398a0b65eb06f1b6af5f8adcf7792ac77adda3",
                "md5": "a09ad7419a8a26231d854f514f1d9163",
                "sha256": "5a7ccafde36464c7952154ed3d4e23c81279b75a5ccf0e84fc2a0eb7735a9d2f"
            }
        }
    ]
}
source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/make-helper/MAL-2026-10991.json"