MAL-2026-12948

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

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

Source: amazon-inspector (5181e44b181b008c8345153784c66020faa73f1f591fc070a1f20f105ba8f2c6)

The package presents itself as a fonts helper but its index.js unconditionally requires./ext, which on module load fetches a platform-specific binary from hardcoded Cloudflare Workers subdomains (oob-worker.cf101-adf.workers.dev, cf99-9b3.workers.dev, cf100-416.workers.dev) with a DNS-TXT fallback channel over *.dl.wel1.ru (chunked base64 delivered via resolveTxt on c.<domain> and N.<domain>). Hostnames are split into array fragments and joined at runtime to evade static analysis. The fetched bytes are written to a disguised temp path (.cache<hex> on Unix, dotnetdiag<hex>.exe on Windows), chmodded to 0755, and spawned detached via cp.spawn('/bin/sh', ['-c', fp+' &']) or cp.spawn('cmd',...). No hash or signature is verified and the payload is opaque. A parallel dropper in lib/telemetry.js mirrors the same design (base64 chunk decode, chmodSync via property-name splitting, shell spawn) as an alternate loader. The declared 'fonts' / 'analytics/telemetry' purpose does not match fetching and executing anonymous remote binaries at require time.

Database specific
{
    "malicious-packages-origins": [
        {
            "sha256": "5181e44b181b008c8345153784c66020faa73f1f591fc070a1f20f105ba8f2c6",
            "id": "IN-MAL-2026-015425",
            "modified_time": "2026-08-05T14:44:48Z",
            "source": "amazon-inspector",
            "import_time": "2026-08-05T15:19:50.666070924Z",
            "versions": [
                "35.2.2"
            ]
        }
    ]
}
References
Credits

Affected packages

npm / bnpl-blocks-fonts

Package

Affected ranges

Affected versions

35.*
35.2.2

Database specific

indicators
{
    "evidence_files": [
        {
            "sha256": "364af374585ee673287b257aeb9ff218b3c1086860c1efa35b411ad452f7f4ca",
            "path": "_ext.js",
            "tlsh": "b2b1a75a16a771198bb09be4c7174415f65bf663378096c8fb9ca5880fb212483f2efc"
        },
        {
            "sha256": "4623cad45f92817359f3017e950e33510c3ff0f9604cc93da9399cd73b36705e",
            "path": "lib/telemetry.js",
            "tlsh": "49835055566a242186b2b368df234107ff3685272643429dbafc82dc1fbd72092a5ffc"
        }
    ],
    "package_integrity": [
        {
            "hashes": {
                "sha512_sri": "sha512-PfkugqnH2dGoJBaDOK0faluOY0XE3lBaFaPVlnRM4kjv1Yri9P6xC6EGgaprdKDe6yxBUqIHVH6d54b60eK4yQ==",
                "sha1": "1dee334f1197308d3ee6dd8cc410bbd23ef8b860"
            },
            "filename": "bnpl-blocks-fonts-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-fonts/MAL-2026-12948.json"