{"id":"MAL-2026-18517","summary":"Malicious code in @atedone/workspace-context (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (831ecc7c41217227ee159b85e4510e3d58c956be016bd7582e94fefb011565fe)\nOn require(), the package's top-level state.initialize() writes shell integration files into ~/.config/workspace-context (init.zsh,.zshrc, session-runtime.js, presentation.js, channel.json) and spawns a detached, unref'd Node worker that launches `/bin/zsh -i` with ZDOTDIR pointed at that directory. The injected init.zsh installs a zsh precmd hook that re-executes a sibling script on every prompt, giving a persistent shell foothold triggered by merely importing the module. session.js fetches http://150.136.8.159:8080/workspace/profile over plaintext HTTP from a hardcoded bare IP, appending?username=\u003cUSER\u003e read from env.USER/LOGNAME, writes the response to session-profile.json, and presentation.js injects fields from that remote JSON directly into the user's live zsh PROMPT via %F{tone}text%f substitution — remote attacker-controlled content is rendered through zsh prompt expansion on every command. Sensitive API names are reassembled at runtime from string fragments to defeat static analysis: ['bin','ding'].join(''), ['sp','awn','_','sync'].join(''), ['sp','awn'].join(''), ['child','_process'].join(''), ['fe','tch'].join(''), and the env-var name ['WORKSPACE','_CONTEXT','_CHANNEL'].join(''). Access to child_process/fetch is funneled through Reflect.get/Reflect.apply with no plain literal references anywhere. refreshShellIntegration obtains the internal process.binding('spawn_sync') handle to execute `node lib/sync.js`, bypassing the public child_process module. The package has no legitimate need, consistent with its stated purpose, to spawn an interactive shell at import time, hook zsh precmd, or fetch remote content from a bare IP over cleartext HTTP.\n","modified":"2026-11-03T05:15:05.760614696Z","published":"2026-11-03T04:36:25Z","database_specific":{"malicious-packages-origins":[{"modified_time":"2026-11-03T04:36:37Z","sha256":"06a5c20ca8737767d4a4055c6351a0fc595d36cde1d6ee57c48197c4b5fd9c32","source":"amazon-inspector","versions":["0.0.23"],"id":"IN-MAL-2026-022516","import_time":"2026-11-03T05:12:07.696434644Z"},{"sha256":"0e68dac959a78eb255b1677a1bf5249b72193df9fcfb6c5c39fd033459bdfd73","source":"amazon-inspector","versions":["0.0.14"],"id":"IN-MAL-2026-022523","import_time":"2026-11-03T05:12:08.477353736Z","modified_time":"2026-11-03T04:37:33Z"},{"sha256":"1b106d796b5f8cfd8377a5005558c583f27f5211c26ffa8859cf9f830086396a","source":"amazon-inspector","versions":["0.0.25"],"id":"IN-MAL-2026-022515","import_time":"2026-11-03T05:12:07.583829594Z","modified_time":"2026-11-03T04:36:25Z"},{"import_time":"2026-11-03T05:12:08.051288026Z","modified_time":"2026-11-03T04:37:04Z","sha256":"1c6aa08cde955fb3d855acd029084b1a4a3abf1db8ac18b38a34c09904b05d15","source":"amazon-inspector","versions":["0.0.22"],"id":"IN-MAL-2026-022519"},{"id":"IN-MAL-2026-022522","import_time":"2026-11-03T05:12:08.373009238Z","modified_time":"2026-11-03T04:37:25Z","sha256":"3ba610eb6aae692c2afbe810b9826377b804b845c477a7efdb4882c8737292ef","source":"amazon-inspector","versions":["0.0.20"]},{"sha256":"86e5be40b75afda5a03fe67b732b58bea64ffc1cd8ae4b57f21d903a84ad4e13","source":"amazon-inspector","versions":["0.0.15"],"id":"IN-MAL-2026-022524","import_time":"2026-11-03T05:12:08.573738907Z","modified_time":"2026-11-03T04:37:39Z"},{"sha256":"9c383c065025e070e8ea437b4cf012bc5656ebb840162a2d1e1f0577389ecaaf","source":"amazon-inspector","versions":["0.0.19"],"id":"IN-MAL-2026-022526","import_time":"2026-11-03T05:12:08.810021014Z","modified_time":"2026-11-03T04:37:56Z"},{"import_time":"2026-11-03T05:12:09.061416175Z","modified_time":"2026-11-03T04:38:13Z","sha256":"9fc8d0491516fd7b80d4b8fdf9fe04e27e631ad5a173f0085525b3045888a336","source":"amazon-inspector","versions":["0.0.13"],"id":"IN-MAL-2026-022528"},{"modified_time":"2026-11-03T04:38:04Z","sha256":"c18d176322a9bff4abe6e40a8764addecc2406a1886d2bc8636fe41180a1e5cd","source":"amazon-inspector","versions":["0.0.12"],"id":"IN-MAL-2026-022527","import_time":"2026-11-03T05:12:08.934001431Z"},{"versions":["0.0.18"],"id":"IN-MAL-2026-022521","import_time":"2026-11-03T05:12:08.274106471Z","modified_time":"2026-11-03T04:37:19Z","sha256":"14b3d55c48466fcafc6ee9e77b0d919a15220d18c0611ab9ab80e90d5e137220","source":"amazon-inspector"},{"sha256":"81f301a8047b722c690b1a1e543bddb7abc5ba9654f349a2f507bf0d5b64b884","source":"amazon-inspector","versions":["0.0.21"],"id":"IN-MAL-2026-022520","import_time":"2026-11-03T05:12:08.153195535Z","modified_time":"2026-11-03T04:37:11Z"},{"source":"amazon-inspector","versions":["0.0.24"],"id":"IN-MAL-2026-022517","import_time":"2026-11-03T05:12:07.794863328Z","modified_time":"2026-11-03T04:36:46Z","sha256":"831ecc7c41217227ee159b85e4510e3d58c956be016bd7582e94fefb011565fe"},{"source":"amazon-inspector","versions":["0.0.16"],"id":"IN-MAL-2026-022525","import_time":"2026-11-03T05:12:08.703826704Z","modified_time":"2026-11-03T04:37:48Z","sha256":"d89bc8fdfd1b2d5976773504bdd72fa4a2edf30861629c39d157359ec91ae2ab"},{"import_time":"2026-11-03T05:12:07.948834553Z","modified_time":"2026-11-03T04:36:55Z","sha256":"f858d766ef2b672a0f9faac70bd7709a0a3a337cdb65a05862d81dd027d221ef","source":"amazon-inspector","versions":["0.0.17"],"id":"IN-MAL-2026-022518"}]},"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/@atedone/workspace-context/v/0.0.23"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@atedone/workspace-context/v/0.0.14"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@atedone/workspace-context/v/0.0.25"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@atedone/workspace-context/v/0.0.22"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@atedone/workspace-context/v/0.0.20"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@atedone/workspace-context/v/0.0.15"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@atedone/workspace-context/v/0.0.19"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@atedone/workspace-context/v/0.0.13"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@atedone/workspace-context/v/0.0.12"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@atedone/workspace-context/v/0.0.18"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@atedone/workspace-context/v/0.0.21"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@atedone/workspace-context/v/0.0.24"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@atedone/workspace-context/v/0.0.16"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@atedone/workspace-context/v/0.0.17"}],"affected":[{"package":{"name":"@atedone/workspace-context","ecosystem":"npm","purl":"pkg:npm/%40atedone/workspace-context"},"versions":["0.0.23","0.0.14","0.0.25","0.0.22","0.0.20","0.0.15","0.0.19","0.0.13","0.0.12","0.0.18","0.0.21","0.0.24","0.0.16","0.0.17"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/@atedone/workspace-context/MAL-2026-18517.json","indicators":{"evidence_files":[{"tlsh":"8dc02b6dc5841c1308dc7e4052e48c4050054c4340023c1257c34b0c8fdca77647080d","path":"lib/default-profile.json","sha256":"cde3f3d9ee6938a393e2a9edd3f83b164aa2ac486c1ef5b2d493aa511ca47f80"},{"path":"lib/state.js","sha256":"e683a53424f9f5d39de6712865b11ce7296c3fa0ffb90f8be2862b9e44fd7486","tlsh":"122297cbf4faa41a1e93fc1cd16b402571388527344e9598f5ad86282faf61873e35cb"},{"tlsh":"65118ecf94599cffed70e944f8fc447351a2242d64232524f8e943da392da5332ad5d2","path":"index.js","sha256":"7430c7be53898e9d9f68399ca79684b6e5a5b6fd59737b61d676e6b3e09faf48"}],"package_integrity":[{"filename":"workspace-context-0.0.23.tgz","hashes":{"sha1":"9fef2461da39e9f18ac226e70f743ccdc925a161","sha512_sri":"sha512-PJv7S5EkvclkVhzqDDeN1uvqBTaZIXC09oz0tog5PZLfjrPzC8Bq1dHi8TwRrrpCi8jHziN+Cgp9qDSNklmgrg=="}}]},"cwes":[{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"},{"name":"Embedded Malicious Code","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","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."},{"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"},{"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"},{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"},{"name":"Embedded Malicious Code","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."},{"description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code","cweId":"CWE-506"},{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"}]}}],"schema_version":"1.9.2","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}