MAL-2026-12951

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/bnpl-blocks-independent-bnpl-button/MAL-2026-12951.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2026-12951
Published
2026-08-05T14:45:17Z
Modified
2026-08-05T15:51:13.285200530Z
Summary
Malicious code in bnpl-blocks-independent-bnpl-button (npm)
Details

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

Source: amazon-inspector (7749e7f4c01551d7ec3463d1b65e3f564a9ec64cbc4801586a72652ab55e4e34)

On require of the package main, runtime.js selects a per-OS endpoint, fetches an opaque executable from obfuscated Cloudflare Workers hosts (hostnames assembled by string-splitting, e.g. 'oob-worker.cf100-416.workers.dev') with a DNS-TXT base64-chunked fallback via *.dl.wel1.ru, writes the payload to /var/tmp or the Windows temp directory under disguised names such as 'dotnetdiag<hex>.exe' and '.cache<hex>', chmods it to 0755, and detach-spawns it via cp.spawn('/bin/sh', ['-c', <path>+' &'], {detached:true}).unref() or spawn('cmd',...). A second dropper module, lib/telemetry.js, is shipped alongside and implements the same base64-chunked payload -> writeFile -> chmodSync -> '/bin/sh -c <path> &' pattern, with obfuscated identifiers such as require('child_'+'process') and fs['chmod'+'Sync']. Hostname reconstruction via array joins, a no-op logger that suppresses output, disguised filenames, DNS-TXT covert-channel fallback, and detached execution are consistent with an install/load-time remote code execution dropper.

Database specific
{
    "malicious-packages-origins": [
        {
            "sha256": "7749e7f4c01551d7ec3463d1b65e3f564a9ec64cbc4801586a72652ab55e4e34",
            "id": "IN-MAL-2026-015428",
            "modified_time": "2026-08-05T14:45:17Z",
            "source": "amazon-inspector",
            "import_time": "2026-08-05T15:19:50.887017403Z",
            "versions": [
                "35.2.2"
            ]
        }
    ]
}
References
Credits

Affected packages

npm / bnpl-blocks-independent-bnpl-button

Package

Name
bnpl-blocks-independent-bnpl-button
View open source insights on deps.dev
Purl
pkg:npm/bnpl-blocks-independent-bnpl-button

Affected ranges

Affected versions

35.*
35.2.2

Database specific

indicators
{
    "evidence_files": [
        {
            "sha256": "764ad4d58ed1f745412071afabdbef34fa688544b38f31e00c2f67b3269295cd",
            "path": "_runtime.js",
            "tlsh": "0ab1b76a06a670084b70d7e4c6175416f666f6633780c198f7ac69881ff712483f2efc"
        },
        {
            "sha256": "e3eb06400ac6b52c39db91b261bee252e2c28102bdfaba70b070b725dc8e26fa",
            "path": "lib/telemetry.js",
            "tlsh": "de835056566a142186b2b368df234107ff3685272643429dbafc82dc1fbd72092a5ffc"
        }
    ],
    "package_integrity": [
        {
            "hashes": {
                "sha512_sri": "sha512-fRZM2PH2ZeyIuO6/k9mY8V2Nw8i2/s8kG82WKnOEUcZ6RTgeiPkbbmdKvW+6xk1iUghh9b8MzmSqrhZ9aNZiow==",
                "sha1": "1b41bdd8cc3d1007a430c87a859ef64fa7e5c9cd"
            },
            "filename": "bnpl-blocks-independent-bnpl-button-35.2.2.tgz"
        }
    ]
}
cwes
[
    {
        "name": "Embedded Malicious Code",
        "description": "The product contains code that appears to be malicious in nature.",
        "cweId": "CWE-506"
    }
]
source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/bnpl-blocks-independent-bnpl-button/MAL-2026-12951.json"