MAL-2026-11549Malicious code in tinkoff-terminal-kit-carousel (npm)
| Ecosystem | Package | Version |
|---|---|---|
| npm | tinkoff-terminal-kit-carousel | 20.6.3 |
{"schema_version":"1.7.4","id":"MAL-2026-11549","published":"2026-08-04T22:06:56Z","modified":"2026-08-25T16:28:08.498337299Z","aliases":["GHSA-g537-jjq6-mv8m"],"summary":"Malicious code in tinkoff-terminal-kit-carousel (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (d67091b6d7ee752850793817e0bf77d92b3bc16bff12d5348e81c1cb39cf6423)\nOn require() of the package, index.js loads _adapter.js, which selects a platform-specific endpoint, fetches an opaque binary over HTTPS from one of three obfuscated Cloudflare Workers hosts (oob-worker.cf100-416.workers.dev, oob-worker.cf101-adf.workers.dev, oob-worker.cf103-070.workers.dev), writes the bytes to /tmp or %TEMP% under a hidden/decoy filename (`.cache_<hex>` on Unix, `dotnet_diag_<hex>.exe` on Windows), chmods 0755, and spawns it detached via `/bin/sh` or `cmd.exe`. Hostnames are assembled at runtime from split string arrays joined together to evade static analysis, and a cooldown marker file (`.analytics_state`) suppresses re-execution. If the HTTPS fetch fails, `loadViaDns` retrieves base64-encoded chunks from TXT records under `tin.dl.well1.site`, `tina.dl.well1.site`, `ldr.dl.well1.site`, and `win.dl.well1.site`, reassembles them into a binary, and executes it via the same path. No source is shipped for the executed payload, no hash or signature is verified, and no user consent is obtained. The package name resembles the Tinkoff Investments brand but the code has no relation to any documented Tinkoff SDK.\n\n## Source: ghsa-malware (a1fcbbe4920d181adab68dba9f228acce164681e72d96a0de5b177be3d16bbae)\nAny computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.\n","affected":[{"package":{"name":"tinkoff-terminal-kit-carousel","ecosystem":"npm"},"versions":["20.6.3"],"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":"_adapter.js","sha256":"3cc4b0f5ea2afe9e8db56caecbeb397aae06ad42028adaa48c4d68f872d07e9d","tlsh":"3ba1859616a9701d4bb0abe4cb179816f65af65337808294fb9c74845fb312483b2efc"}],"package_integrity":[{"filename":"tinkoff-terminal-kit-carousel-20.6.3.tgz","hashes":{"sha1":"d419bcfa1320cfe7c6be0a58cdbc0df618233fcd","sha512_sri":"sha512-ANdlZLSzY4uHIe6OO5tfqZ8oMpeCchYT8Yl6WNF8QCAy8SN89unfR8E4CoQQbhnwwZIIwKf94s2VCOJBrRnhcw=="}}]}}}],"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/tinkoff-terminal-kit-carousel/v/20.6.3"},{"type":"ADVISORY","url":"https://github.com/advisories/GHSA-g537-jjq6-mv8m"}],"database_specific":{"malicious-packages-origins":[{"id":"IN-MAL-2026-011336","import_time":"2026-08-04T22:30:11.518149289Z","modified_time":"2026-08-04T22:06:56Z","sha256":"d67091b6d7ee752850793817e0bf77d92b3bc16bff12d5348e81c1cb39cf6423","source":"amazon-inspector","versions":["20.6.3"]},{"id":"GHSA-g537-jjq6-mv8m","import_time":"2026-08-25T16:26:05.031700632Z","modified_time":"2026-08-25T16:05:41Z","sha256":"a1fcbbe4920d181adab68dba9f228acce164681e72d96a0de5b177be3d16bbae","source":"ghsa-malware","versions":["20.6.3"]}]},"credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}数据来源:OpenSSF Malicious Packages · Apache-2.0