{"slug": "the-first-supply-chain-worm-targeting-ai-agent-memory-infrastructure-just-hit", "title": "The First Supply-Chain Worm Targeting AI Agent Memory Infrastructure Just Hit npm and PyPI", "summary": "Malicious versions of MemTensor's MemOS memory framework for LLMs and AI agents appeared on npm and PyPI between 02:23 UTC and 05:55 UTC on September 23, 2026, carrying a cross-platform Go credential stealer called sckit — the first documented supply-chain worm targeting agent memory infrastructure. The affected versions are npm @memtensor/memos-cloud-openclaw-plugin 0.1.21, 0.1.23 and 0.1.25, and PyPI MemoryOS 2.0.34, published through maintainer account leason1974; sckit harvests credentials from 13 categories and routes them to command-and-control infrastructure at skyleen[.]fr. The binary embeds recursivePublish and prepareRemoteWorkflow functions plus GitHub Actions templates to steal publishing tokens and spread to other packages, though no confirmed downstream spread has been observed.", "body_md": "## Three Hours, Two Registries, One Memory Framework\n\nBetween 02:23 UTC and 05:55 UTC on September 23, 2026, malicious versions of MemTensor’s MemOS — an open-source memory framework for LLMs and AI agents with roughly 11,500 GitHub stars — appeared on both npm and PyPI. The payload: a cross-platform Go-based credential stealer called **sckit**. It is the first documented supply-chain worm specifically targeting agent memory infrastructure.\n\nThe compromise started with direct commits to MemTensor’s own GitHub repositories, published through the maintainer account `leason1974` without a `gitHead`. Clean versions appeared between malicious ones — `0.1.22` and `0.1.24` on npm — which researchers at [Semgrep](https://semgrep.dev/blog/2026/the-ai-ecosystem-has-worms-now-inside-the-memtensor-compromise/) read as the attacker testing payload optimization while access lasted. The affected versions: npm `@memtensor/memos-cloud-openclaw-plugin` 0.1.21, 0.1.23, and 0.1.25; PyPI `MemoryOS` 2.0.34.\n\n## The Evasion: No Hooks, Just Legitimate Code Paths\n\nSckit does not use `postinstall` hooks. Everyone scans those now. Instead, it wires itself into functionality the agent calls anyway.\n\nOn the npm side, the malicious versions add `lib/sckit.js`, which launches a platform-specific Go binary from a hidden `.sckit/` directory. The launcher runs at two points: when the OpenClaw agent gateway starts up, and every time the memory-recall hook fires. That second trigger matters — each recall invocation passes the user’s current prompt text to the binary via the `SCKIT_EVENT_TEXT` environment variable. [StepSecurity’s analysis](https://www.stepsecurity.io/blog/sckit-supply-chain-worm-hits-memtensor-npm-pypi-scopes) notes this means anything a developer asks the agent while an affected version is loaded should be treated as exposed.\n\nOn the Python side, the attack is arguably more elegant. [The Hacker News reports](https://thehackernews.com/2026/09/compromised-memtensor-packages-deliver.html) that the payload triggers through `memos/log.py`, where `configure_logging()` appends a call to `memos._stage0.trigger()`. Because Python executes module-level statements on import, a simple `import memos` reaches the logging hook, which reaches the launcher. No install-time scripts needed.\n\n## What It Steals, and Where It Sends It\n\nThe sckit binary harvests credentials from 13 categories: npm tokens, PyPI tokens, GitHub and GitLab personal access tokens, AWS access keys, Hugging Face tokens, HashiCorp Vault tokens, Slack tokens, Stripe live keys, SendGrid keys, SSH keys, generic JWTs, and environment variables matching secret-shaped patterns. Captured data routes to command-and-control infrastructure at `skyleen[.]fr` and its subdomains.\n\nThe embedded configuration — decoded from a base64 `--config64` argument — names the campaign `cloud-openclaw-semi-nuclear`, sets `$HOME` as the inventory root, and configures three external fronts with `/config`, `/status`, and `/batch` endpoints. The campaign’s `not_after` timestamp corresponds to October 23, 2026.\n\n## The Worm That Could\n\nThe binary includes functions named `recursivePublish`, `prepareRemoteNode`, `prepareRemotePython`, and `prepareRemoteWorkflow`. Embedded GitHub Actions templates request execution on push. The design is clear: steal publishing tokens, use them to push compromised versions of other packages, repeat.\n\nAs of this writing, **no confirmed downstream spread** has been observed. The propagation capability exists in the code; its real-world activation has not been documented.\n\n## The Memory Layer Joins the Attack Surface\n\nThis week’s T/I/S coverage has tracked agent security across multiple layers: the kernel (Muse Sentinel’s eBPF taint tracking, Post 130742), the VM (GrokBot’s persistent environment), and the browser. The MemTensor incident adds the package ecosystem — specifically, the memory frameworks agents depend on — to that list.\n\nThree properties make the agent stack an unusually good target for this kind of attack. The credential density is high: agents need access to secrets to function, so the machines running them tend to hold publishing tokens, cloud keys, and API credentials. Few teams threat-model `pip install` for AI projects. And the prompts themselves carry sensitive data that conventional supply-chain attacks never touched.\n\n## What Defenders Should Do\n\nPin npm to version 0.1.20 and PyPI to 2.0.33, or remove the packages entirely. Rotate every credential accessible from any environment that imported the affected versions — registry tokens first, then source control, cloud, Vault, SSH keys. Block `skyleen[.]fr` and all subdomains. Search lockfiles, `requirements*.txt`, `poetry.lock`, and SBOMs for the affected package names. Audit your own releases if an affected host held a publish token.", "url": "https://wpnews.pro/news/the-first-supply-chain-worm-targeting-ai-agent-memory-infrastructure-just-hit", "canonical_source": "https://forkast.news/the-first-supply-chain-worm-targeting-ai-agent-memory-infrastructure-just-hit-npm-and-pypi/", "published_at": "2026-09-25 20:20:43+00:00", "updated_at": "2026-09-25 20:30:41.408217+00:00", "lang": "en", "topics": ["ai-safety", "ai-agents", "ai-infrastructure", "developer-tools", "artificial-intelligence"], "entities": ["MemTensor", "MemOS", "sckit", "npm", "PyPI", "Semgrep", "StepSecurity", "leason1974"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/the-first-supply-chain-worm-targeting-ai-agent-memory-infrastructure-just-hit", "markdown": "https://wpnews.pro/news/the-first-supply-chain-worm-targeting-ai-agent-memory-infrastructure-just-hit.md", "text": "https://wpnews.pro/news/the-first-supply-chain-worm-targeting-ai-agent-memory-infrastructure-just-hit.txt", "jsonld": "https://wpnews.pro/news/the-first-supply-chain-worm-targeting-ai-agent-memory-infrastructure-just-hit.jsonld"}}