@onescience/onecode (npm) · Malicious Code
Affects @onescience/onecodeSource GCVE Database
Malicious package : remove @onescience/onecode and rotate any secrets on hosts that installed it.
Data as of 7 Aug 2026, 15:17 UTC
Malicious package
Published to npm · OSV MAL-2026-10717
What to do
Remove @onescience/onecode from every project, lockfile and image that pulls it in. Treat any host that installed it as compromised: rotate the credentials, tokens and keys it could read, from a clean machine.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| npm@onescience/onecode | Affected
| Fixed in– |
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
Description
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (713bf7fce40e177608dd5145e1662b4efd3da6c1597d9a1aeb15d7715b865205) The npm postinstall hook runs ensurePlatformBinary(), which downloads a.tgz archive from the hardcoded bare-IP URL https://218.90.133.98:4443/onecode_tgz/onecode-<ver>/onecode-linux-x64-<ver>.tgz, extracts it via `tar -xzf`, chmods the extracted file to 0o755, hardlinks it into bin/.onecode, and the shipped CLI launcher invokes it. The HTTPS request explicitly sets `rejectUnauthorized: false`, disabling TLS certificate verification, and no hash or signature check is performed on the downloaded artifact. The download destination is a bare IPv4 address on a non-standard port, not a publisher-owned domain or a recognized release host. The package name and launcher (@onescience/onecode) mirror the unrelated 'opencode' project — env-var fallbacks reference OPENCODE_BIN_PATH and bundled asset directories are named.opencode/session-seed and.opencode/oneskills — while the executable payload is retrieved from an unrelated hardcoded IP endpoint. Anyone controlling that host, or any on-path network attacker (TLS is disabled), can deliver arbitrary code that executes on every installer's machine.
References
- npmjs.com/package/@onescience/onecode/v/1.14.50-202607161038 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202607161710 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202607161139 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202607231111 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202608041043 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202607171833 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202608041614 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202607270920 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202607271545 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202607281814 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202608031812 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202607271808 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202607281613 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202607291705 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202607301758 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202607200911 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202607231354 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202607221649 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202608061753 (opens in a new tab)
- npmjs.com/package/@onescience/onecode/v/1.14.50-202607281527 (opens in a new tab)