{
  "id": "cherry-miniapp-sdk-malware",
  "url": "https://ohshit.app/incidents/cherry-miniapp-sdk-malware/",
  "title": "GitHub flags two @cherrydotfun/miniapp-sdk npm releases as malware",
  "level": 3,
  "level_name": "sharted",
  "date": "2026-11-06",
  "date_is_approximate": false,
  "updated": null,
  "tags": [
    "npm",
    "Supply chain",
    "Malware"
  ],
  "ecosystems": [
    "npm"
  ],
  "summary": "GitHub lists @cherrydotfun/miniapp-sdk 0.1.22 and 0.1.23 as malware. npm lists 0.1.21 as latest and omits both affected releases from its version list. Identify installations from lockfiles and build logs, isolate exposed environments and rotate their secrets. GitHub lists no patched version.",
  "splash": "Developer machines and CI workers that installed or ran @cherrydotfun/miniapp-sdk 0.1.22 or 0.1.23.",
  "wipe": "Stop affected installs, isolate exposed environments, rotate accessible secrets from a clean system and rebuild from verified dependencies.",
  "in_the_wild": "unknown",
  "source_exception": null,
  "cves": [
    {
      "id": "GHSA-q8jp-gq6p-hwpx",
      "name": "Malicious npm releases",
      "description": "GitHub marks exactly 0.1.22 and 0.1.23 as malware and lists no patched release."
    }
  ],
  "fixed": [],
  "checklist": [
    {
      "title": "Stop affected installations and preserve evidence",
      "hint": "Search npm, pnpm and Yarn lockfiles, SBOMs, package caches and CI logs for the exact package and versions 0.1.22 and 0.1.23. Retain affected build logs and lockfiles. A dependency declaration or cached artifact alone does not prove the code ran."
    },
    {
      "title": "Isolate machines and workers that installed or ran the releases",
      "hint": "Preserve relevant process and network logs before wiping. From a clean device, revoke or rotate accessible registry tokens, CI and cloud credentials, signing keys and other secrets. Inspect related registry publications and CI changes made with those credentials."
    },
    {
      "title": "Rebuild with a verified dependency set",
      "hint": "Remove the affected versions, review direct and transitive dependencies, and rebuild on clean infrastructure. Invalidate contaminated caches and replace affected artifacts. Review the provenance of any replacement, including 0.1.21, before pinning it."
    }
  ],
  "sources": [
    {
      "name": "GitHub malware advisory",
      "url": "https://github.com/advisories/GHSA-q8jp-gq6p-hwpx",
      "says": "Identifies both malicious versions, no patch and the need for host investigation and credential rotation.",
      "primary": true
    },
    {
      "name": "npm registry metadata",
      "url": "https://registry.npmjs.org/@cherrydotfun%2Fminiapp-sdk",
      "says": "Records both publication times and the current latest tag at 0.1.21.",
      "primary": true
    },
    {
      "name": "OpenSSF OSV malware entry",
      "url": "https://api.osv.dev/v1/vulns/MAL-2026-18737",
      "says": "Preserves the GitHub advisory versions and timestamps. This is an import of the same advisory.",
      "primary": true
    }
  ],
  "headline": null,
  "one_liner": null,
  "in_the_wild_note": "Malicious packages were published. Confirmed downstream victims have not been disclosed.",
  "mitigation": null,
  "timeline": [
    {
      "date": "Nov 6, 20:46–21:36 UTC",
      "title": "Two affected npm releases appear",
      "body": "Registry timestamps place 0.1.22 at 20:46 UTC and 0.1.23 at 21:36 UTC."
    },
    {
      "date": "Nov 6, 22:15 UTC",
      "title": "GitHub publishes its malware advisory",
      "body": "The advisory initially identified 0.1.22."
    },
    {
      "date": "Nov 6, 23:04 UTC",
      "title": "GitHub adds 0.1.23",
      "body": "The updated advisory lists both versions and no patched release."
    }
  ],
  "body_markdown": "The advisory establishes two malicious versions of the published SDK. The public sources reviewed do not establish how the releases were published, which credentials the code reached, or who ran it. Treat systems that installed or ran either version as potentially compromised. Removing the dependency alone cannot clear a host.\n\nThe registry currently advertises 0.1.21 as latest and no longer includes metadata for the two versions in its version map. Publication timestamps remain visible. Review prior installations and cached artifacts even if a fresh registry lookup no longer offers those versions."
}