{"schema_version":"1.8.0","id":"MAL-2026-13195","published":"2026-08-05T15:06:45Z","modified":"2026-08-05T15:53:08.046183961Z","summary":"Malicious code in dolyame-ui-themes (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (22c23ba8923130746ecc1e526c3a0ee8961ea764dd90d0da71236444d978ce27)\ndolyame-ui-themes ships a _loader.js that is required from the package main (index.js) at module load. The loader reconstructs C2 hostnames from split string arrays to hide them from static scanners, resolving to oob-worker.cf101-adf.workers.dev, oob-worker.cf102-baf.workers.dev, and oob-worker.cf103-070.workers.dev, with a covert-channel fallback that retrieves further endpoints from DNS TXT records at sdk.dl.wel1.ru, ext.dl.wel1.ru, pkg.dl.wel1.ru, and net.dl.wel1.ru. The loader fetches a platform-specific binary via https.get, writes it to /tmp or %TEMP% under disguised names such as.cache_<hex> or dotnet_diag_<hex>.exe, chmods it 755, and detached-spawns it through /bin/sh -c or cmd.exe. Dangerous APIs are loaded via runtime string concatenation (require(\"child_\" + \"process\"), fs[\"chmod\"+\"Sync\"]). A sibling module lib/telemetry.js is framed as an analytics SDK but duplicates the same dropper primitives (base64 chunk decoding, chmod 755, detached /bin/sh spawn) as a parallel loader path. The package name resembles the legitimate dolyame payment integration ecosystem, consistent with a typosquat/lookalike lure. Installing or requiring this package executes an opaque attacker-controlled binary on the installer's host.\n","affected":[{"package":{"name":"dolyame-ui-themes","ecosystem":"npm","purl":"pkg:npm/dolyame-ui-themes"},"versions":["35.6.3"],"database_specific":{"cwes":[{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"}],"indicators":{"evidence_files":[{"path":"_loader.js","sha256":"4050c5b275993c90fd3b919a6ba4d62cb0ebbc03218e195e079a958e85df2de9","tlsh":"eca1c7aa066a30188bb097e0c71b5416f55bf6637780d1d4fb9ca5981ff212483b2efc"},{"path":"lib/telemetry.js","sha256":"9184a253e9d1d788559b7e2c3f60d14efefae50d9fb5933563039337dc6df801","tlsh":"74835055566a242186b2b368df234107ff3685272643429dbafc82dc1fbd72092a5ffc"}],"package_integrity":[{"filename":"dolyame-ui-themes-35.6.3.tgz","hashes":{"sha1":"a690267940bea738dcfd500b1d59246690a0a9ad","sha512_sri":"sha512-1UrJxMOmp/Cm7qoQrGnF9CLeYSaHAdoP+iIT9uiQlJh1g1GErxCTEmTBrLQjvkTTd3mZUX6slwWMkOLIQqDeKA=="}}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/dolyame-ui-themes/MAL-2026-13195.json"}}],"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/dolyame-ui-themes/v/35.6.3"}],"database_specific":{"malicious-packages-origins":[{"id":"IN-MAL-2026-015571","import_time":"2026-08-05T15:19:58.473728267Z","modified_time":"2026-08-05T15:06:45Z","sha256":"22c23ba8923130746ecc1e526c3a0ee8961ea764dd90d0da71236444d978ce27","source":"amazon-inspector","versions":["35.6.3"]}]},"credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}