---
id: "MAL-2026-18448"
kind: "package"
aliases: ["MAL-2026-18448"]
title: "Malicious code in @mobile-platform/magnetic-components (npm)"
severity: "critical"
cvss: null
epss: null
exploited: false
status: "open"
category: "package"
products: [{"name": "@mobile-platform/magnetic-components", "fixed": [], "affected": "= 0.0.1; = 0.0.2; = 0.0.3", "ecosystem": "npm"}]
ecosystems: ["npm"]
tags: ["malicious", "package"]
not_affected_if: []
published_at: "2026-10-29T15:19:02+00:00"
first_seen_at: "2026-11-02T06:51:32+00:00"
updated_at: "2026-11-02T06:53:35+00:00"
sources: [{"source": "osv-malicious", "url": "https://osv.dev/vulnerability/MAL-2026-18448", "first_seen_at": "2026-11-02T06:51:32+00:00"}]
---

# Malicious code in @mobile-platform/magnetic-components (npm)

## Affected

- npm:@mobile-platform/magnetic-components affected = 0.0.1; = 0.0.2; = 0.0.3 fixed ?

## Timeline

- 2026-11-02T06:51:32+00:00 osv-malicious https://osv.dev/vulnerability/MAL-2026-18448

## From the sources

@mobile-platform/magnetic-components is a dependency-confusion package: its description says the scoped name is referenced in the Meraki Dashboard Android app's bundled JavaScript and was unclaimed on the public registry, so a build that resolves `@mobile-platform` from npm runs its code instead of the intended private package. Its preinstall script runs `node preinstall.js` on npm install; in 0.0.1 and 0.0.2 it writes `DEPENDENCY_CONFUSION_POC_MARKER.txt` into the working directory, and in 0.0.3 it makes a DNS lookup of a fixed subdomain of `dbhmeq71af5395un3p70tujr84cuwuyg7.oast.me`, an interactsh callback host, signalling that the package was installed. It sends no host data beyond the lookup itself, but unreviewed code from an outside publisher has run with the installing user's privileges. The npm account io-8 published the three versions on 2026-10-29.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
