{"dataType":"CVE_RECORD","dataVersion":"1.0","cveMetadata":{"cveId":"GCVE-110-OSM-2026-14796","assignerOrgId":"","assignerShortName":"Vulnetix","state":"PUBLISHED","datePublished":"2026-11-10T09:01:07Z","dateUpdated":"2026-11-09T21:16:11Z","dateReserved":""},"containers":{"cna":{"providerMetadata":null,"title":"","descriptions":[{"lang":"en","value":"Fake Solidity developer extension on Open VSX built to look like the Hardhat Solidity extension `NomicFoundation.hardhat-solidity`. Installing it is enough to run the code, because the extension activates at startup. It plants a persistent remote access backdoor on Windows, macOS and Linux and stays quiet if it detects a sandbox or debugger. The listing's download count was inflated to look popular. This is the second round, uploaded after the first listings were removed. It belongs to the EtherDuck wave of the SleepyDuck campaign, which targets Solidity developers who often hold crypto wallets.\n\n## Payload 1: bundled video carrying the backdoor\n\nMalicious payload found in: `The Duck Song.mp4` (a 205 MB playable video with about 201 MB of appended archive), launched by `out/components/autoUpdate.js`\n\n- Trigger: activation event `onStartupFinished`. `autoUpdate.js` runs the bundled archive extractor on the MP4 (`runBundledSync(\"The Duck Song.mp4\")`).\n- The archive (magic markers `NYANSTEG`, `NYANB64X`, `NYANARCH`) holds seven files; only the one matching the host OS is written to disk: `invoke.ps1`, `app.msi`, `darwin_arm64`, `darwin_amd64`, `linux_amd64`, `linux_arm64`, `note.txt` (a taunt that no code reads).\n- Windows: `invoke.ps1` bypasses UAC with UACMe method 39 (COR_PROFILER, drops `%TEMP%\\uac39-\u003cguid\u003e\\profiler.dll`), excludes the staging directory from Defender, silently installs `app.msi` (ScreenConnect with relay `185[.]232[.]84[.]169:8041`), then cleans up. If Defender or AMSI kills it, it launches `calc.exe` and quits.\n- macOS and Linux: a Go backdoor is written to `~/.solidity/\u003cos\u003e_\u003carch\u003e` with a LaunchAgent (`com.solidity.langsupport.runner`) or systemd user unit (`solidity-langsupport-runner.service`). It reads its hub from the Ethereum contract `0xf8a900Db50b3331be6B768bA460BB59f3E40C344` (hub `193[.]57[.]9[.]17:4912` at time of analysis).\n\n## Payload 2: round two anti-analysis\n\nMalicious payload found in: `lang-resource-sync.js` (129 new lines at the top of the runner script)\n\n- Skips installation if VM vendor strings (VMware, VirtualBox, QEMU, Parallels, KVM) or analysis tools (x64dbg, OllyDbg, windbg, ida, procmon, ProcessHacker, Wireshark, Fiddler, dnSpy) are present.\n\n- Flagged version(s): 0.9.2, 0.9.3. Final version 0.9.3 published about 22:40 UTC on Sep 25, 2026; removed Sep 26, 2026 at 17:35 UTC. Download counts were reported as about 347k inflated downloads in about 24 hours against about 98k lifetime for the real extension.\n","supportingMedia":null}],"references":[{"url":"https://opensourcemalware.com/threats/44b1854e-63d3-4c42-809a-3c82d9cdb872","name":"Malicious openvsx package: Nomic-ETH.hardhat-solidity","tags":["advisory"]},{"url":"https://open-vsx.org/Nomic-ETH.hardhat-solidity","name":"","tags":["vendor"]}],"metrics":[{"format":"CVSS_V3","scenarios":null,"cvssV2_0":null,"cvssV3_0":null,"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H","baseScore":9.6,"baseSeverity":"CRITICAL"},"cvssV4_0":null,"other":null}],"problemTypes":[{"descriptions":[{"lang":"en","description":"Embedded Malicious Code","cweId":"CWE-506","type":"CWE"}]}],"affected":[{"vendor":"unknown","product":"Nomic-ETH.hardhat-solidity","collectionURL":"https://open-vsx.org","packageName":"Nomic-ETH.hardhat-solidity","repo":"","defaultStatus":"affected","versions":[{"version":"all","status":"affected","versionType":"","lessThan":"","lessThanOrEqual":"","changes":null}],"cpes":null,"modules":null,"programFiles":null,"platforms":null}],"cpeApplicability":null,"rejectedReasons":null,"replacedBy":null},"adp":null}}