TrapDoor Supply Chain Campaign: Cross-Ecosystem Credential Theft and AI Assistant Poisoning via npm, PyPI, and Crates.io

devsecops, ASPM, vulnerability management, application security, exposure management, reachability analysis, attack surface management, npm supply chain, account takeover, TeamPCP, Mini Shai-Hulud, atool, AntV, jest-canvas-mock, echarts-for-react, Runner.Worker memory scraping, zero-CVE supply chain, CI/CD credential theft, bun runtime, t.m-kosche.com, SBOM

Executive Summary

TrapDoor is an active cross-ecosystem supply chain campaign distributing credential-stealing malware across npm, PyPI, and Crates.io. Analysis of confirmed artifacts places the campaign’s actual start date at May 19, 2026 — three days earlier than the first widely reported date — with 384 artifact versions spread across 34 malicious packages. The packages impersonate development utilities targeting crypto, DeFi, Solana, and AI developer communities: environments where SSH keys, cloud credentials, GitHub tokens, and crypto wallet keystores routinely coexist on the same machine.

What distinguishes TrapDoor from the typical malicious package is its deliberate targeting of AI coding assistants. The shared npm payload, trap-core.js (48,485 bytes), plants .cursorrules and CLAUDE.md files containing hidden instructions embedded with zero-width Unicode characters. Those files are parsed by tools like Claude Code and Cursor to provide project-specific context. An attacker can place instructions in the path of a developer’s AI assistant without the developer ever reading them. When the assistant acts on those instructions, it runs a fake ‘security scan’ that silently exfiltrates local secrets.

This campaign carries no CVE. Traditional package scanners searching for known-vulnerable versions return zero findings across all 34 packages. The threat is the code inside the packages. For teams relying on CVSS-based prioritization alone, TrapDoor is invisible. Detection requires behavioral IOC matching against SBOM data — the gap Phoenix Security’s threat-centric ASPM was built to close.

TL;DR for Engineering Teams

LabelDetail
What it isActive supply chain campaign (no CVE) distributing a multi-stage credential harvester across npm, PyPI, and Crates.io. Tracked as TrapDoor by Socket Security.
Where it bitesnpm (21 packages, 335 versions), PyPI (7 packages, 10 versions), Crates.io (6 packages, 6 versions). Targets crypto, DeFi, Solana, and AI developer environments. Earliest artifact: May 19, 2026.
Why it matters34 malicious packages, 384 versions, active exfiltration of SSH keys, AWS credentials, GitHub tokens, browser profiles, and crypto wallets. Novel AI injection via .cursorrules and CLAUDE.md (hidden zero-width Unicode). Attacker opened real PRs to LangChain, LlamaIndex, MetaGPT. Zero CVE — standard scanners blind to this campaign.
Patch statusNo vendor patch. Malicious packages must be identified and removed. Some pulled from registries; others were live at time of analysis.
Immediate actionAudit lockfiles against all 34 IOC packages (full versioned list below). Inspect .cursorrules and CLAUDE.md files for zero-width Unicode. Rotate all credentials on any machine that installed flagged packages.

Campaign Overview

FieldValue
Campaign NameTrapDoor
Earliest Confirmed ArtifactMay 19, 2026 (crypto-credential-scanner v2.0.0)
First Widely ReportedMay 22, 2026
Ecosystemsnpm, PyPI, Crates.io
Malicious Packages34
Versions / Artifacts384 (confirmed from IOC telemetry)
CVENone assigned
CWECWE-506 (Embedded Malicious Code)
Active ExploitationConfirmed
Attacker Infrastructureddjidd564.github.io / ddjidd564.github.io/defi-security-best-practices/
Campaign MarkerP-2024-001
Shared Payloadtrap-core.js (48,485 bytes)
XOR Key (Crates.io)cargo-build-helper-2026
Detection SourceSocket Security (May 24, 2026)

Technical Anatomy

Root Cause

TrapDoor has no root cause in the traditional sense. There is no vulnerable library version to patch. The malicious code is the package. Each ecosystem-specific delivery path fires during normal developer workflows, before any user interaction:

  • npm: postinstall hook runs trap-core.js immediately after npm install completes
  • PyPI: auto-execution on import fires a remote JavaScript payload via node -e
  • Crates.io: build.rs script fires during cargo build, before any library code executes

The Shared npm Payload: trap-core.js

The 1,149-line, 48,485-byte trap-core.js payload is the operational core of TrapDoor for npm. It handles four tasks:

  1. Credential discovery: scans the local filesystem for SSH keys, AWS credential files (~/.aws/credentials), GitHub tokens, browser profile data, crypto wallet extensions, and environment variables
  2. Credential validation: actively calls AWS and GitHub APIs to confirm whether stolen credentials are valid, filtering for high-value tokens before exfiltration
  3. Persistence: plants multiple persistence vectors across the compromised machine
  4. Lateral movement: reuses stolen SSH keys to attempt access to connected systems

Persistence vectors observed:

  • .cursorrules — AI assistant config with hidden malicious instructions (zero-width Unicode)
  • CLAUDE.md — Claude Code project context with embedded zero-width Unicode directives
  • Git pre-push hooks
  • Shell RC hooks (.bashrc, .zshrc)
  • systemd user services
  • cron jobs
  • SSH authorized_keys modification

PyPI Execution Path

PyPI packages auto-execute on import and download a remote JavaScript payload from ddjidd564.github.io/defi-security-best-practices/, running it via node -e. Hosting the payload externally decouples the delivery vehicle from the malicious logic. Packages can remain in lockfiles while the server-side payload is updated independently, without requiring a new registry release.

Crates.io Execution Path

Crates.io packages target Sui and Move blockchain developers. The build.rs script fires during cargo build, searches for local Sui and Aptos wallet keystores, encrypts the data with XOR key cargo-build-helper-2026, and exfiltrates it to GitHub Gists. The use of build.rs matters because it runs at compile time. Most dependency analysis tooling does not inspect Rust build scripts for outbound network activity or filesystem reads.

AI Assistant Poisoning

.cursorrules and CLAUDE.md are configuration files parsed by AI coding tools — Cursor and Claude Code respectively — to provide project-specific context that guides the assistant’s behavior. TrapDoor weaponizes this trust relationship.

The attacker embeds hidden instructions using zero-width Unicode characters (U+200B, U+200C, U+200D, U+FEFF). Content appears blank or benign in any standard text editor. The AI assistant parses the full Unicode stream and acts on the hidden instructions, triggering a ‘security scan’ workflow that discovers and exfiltrates local secrets.

AI INJECTION — CONFIRMED PR TARGETS

browser-use/browser-use, langchain-ai/langchain, langflow-ai/langflow, run-llama/llama_index, FoundationAgents/MetaGPT, OpenHands/OpenHands. PR titles: “docs: add .cursorrules with dev standards and build verification”. Each pointed to ddjidd564.github.io/defi-security-best-practices/config.json and referenced campaign marker P-2024-001. GitHub flagged the files as containing hidden or bidirectional Unicode text.

This attack vector connects to previously documented command injection vulnerabilities in Claude Code CLI. In April 2026, Phoenix Security confirmed three CWE-78 flaws in Claude Code CLI allowing credential exfiltration through maliciously crafted project files. TrapDoor’s AI injection component exploits the same model — project config files parsed and acted on by Claude Code — now delivered via supply chain rather than requiring direct repository access.

Reference: https://phoenix.security/critical-ci-cd-nightmare-3-command-injection-flaws-in-claude-code-cli-allow-credential-exfiltration/

Campaign Phases

PhaseActivityFirst Active
Phase 1: Initial npm Wave11 crypto/DeFi-themed npm packages released. Postinstall hooks with credential harvesting logic. Rapid versioning cadence begins.May 19, 2026
Phase 2: Expanded npm Wave10 AI/dev-tool-themed npm packages added. trap-core.js deployed. .cursorrules and CLAUDE.md persistence planted.May 22, 2026
Phase 3: PyPI Deployment7 PyPI packages auto-executing remote JavaScript on import via node -e. Python payload delegates to attacker-controlled GitHub Pages.May 22, 2026
Phase 4: Crates.io Deployment6 Rust packages targeting Sui and Move developers. build.rs XOR-encrypts wallet keystores and exfiltrates to GitHub Gists.May 24, 2026
Phase 5: Ecosystem InjectionPRs opened to LangChain, LlamaIndex, MetaGPT, browser-use, OpenHands. .cursorrules and CLAUDE.md planted under documentation cover.Concurrent

Malicious Package IOCs

npm Wave 1 — Crypto / DeFi Targeting (May 19–21, 2026)

Publisher: asdxzxc. Packages use postinstall hooks. Versioning was iterative and rapid, indicating active development during the campaign window.

Package NameVersion RangeVersionsFirst Active
crypto-credential-scanner2.0.0 to 4.0.0182026-05-19
wallet-backup-verifier1.0.0 to 4.0.0122026-05-20
defi-threat-scanner2.1.1 to 4.0.0162026-05-21
wallet-security-checker1.0.3 to 4.0.0152026-05-21
chain-key-validator0.2.3 to 4.0.0162026-05-21
defi-env-auditor0.3.2 to 4.0.0162026-05-21
eth-wallet-sentinel1.0.10 to 4.0.0152026-05-21
mnemonic-safety-check0.5.2 to 4.0.0162026-05-21
solidity-deploy-guard0.4.4 to 4.0.0152026-05-21
web3-secrets-detector1.2.6 to 4.0.0162026-05-21
deployment-key-auditor0.7.4 to 4.0.0152026-05-21

npm Wave 2 — AI / Dev-Tool Targeting (May 22–23, 2026)

Publisher: asdxzxc. Packages carry trap-core.js and plant .cursorrules / CLAUDE.md persistence artifacts. dev-env-bootstrapper acts as both harvester and config delivery mechanism.

Package NameVersion RangeVersionsFirst Active
dev-env-bootstrapper1.0.0 to 1.5.2212026-05-22
project-init-tools1.0.0 to 1.5.1202026-05-22
workspace-config-loader1.0.0 to 1.5.1202026-05-22
node-setup-helpers1.0.0 to 1.5.1202026-05-22
build-scripts-utils1.0.0 to 1.5.1202026-05-22
llm-context-compressor1.0.0 to 1.5.1202026-05-23
token-usage-tracker1.0.0 to 1.5.1192026-05-23
model-switch-router1.0.0 to 1.5.1192026-05-23
prompt-engineering-toolkit1.0.0 to 1.5.1202026-05-23
async-pipeline-builder1.0.0 to 1.5.1192026-05-23

PyPI — 7 Packages (May 22–24, 2026)

Publishers: asdmini67, dae5411. Auto-execute on import. Remote JavaScript payload fetched from ddjidd564.github.io and executed via node -e, decoupling payload updates from registry releases.

Package NameVersion RangeVersionsFirst Active
cryptowallet-safety0.1.0 to 0.1.012026-05-22
defi-risk-scanner0.1.0 to 0.1.012026-05-22
eth-security-auditor0.1.0 to 0.1.012026-05-22
solidity-build-guard0.1.0 to 0.1.012026-05-22
env-loader-cli0.1.0 to 0.1.122026-05-24
git-config-sync0.1.0 to 0.1.122026-05-24
data-pipeline-check0.1.0 to 0.1.122026-05-24

Crates.io — 6 Packages (May 24, 2026)

Target: Sui and Move blockchain developers. build.rs fires during cargo build. Wallet keystores XOR-encrypted with cargo-build-helper-2026 and exfiltrated to GitHub Gists.

Package NameVersion RangeVersionsFirst Active
sui-move-build-helper0.1.1 to 0.1.112026-05-24
sui-framework-helpers0.1.0 to 0.1.012026-05-24
sui-sdk-build-utils0.1.0 to 0.1.012026-05-24
move-analyzer-build0.1.0 to 0.1.012026-05-24
move-compiler-tools0.1.0 to 0.1.012026-05-24
move-project-builder0.1.0 to 0.1.012026-05-24

Indicators of Compromise

Domains and Infrastructure

C2 / PAYLOAD HOSTS
ddjidd564[.]github[.]io
ddjidd564[.]github[.]io/defi-security-best-practices/
GitHub account: ddjidd564

Campaign Markers and Files

CAMPAIGN ARTIFACTS
Campaign marker:  P-2024-001
Shared payload:   trap-core.js
Payload size:     48,485 bytes
XOR key:          cargo-build-helper-2026
Config fetch:     GitHub raw content webhook (attacker-controlled config.json)
IndicatorTypeNotes
ddjidd564[.]github[.]ioC2 / payload hostHosts trap-core.js, config.json, AUDIT-MATRIX.md
ddjidd564[.]github[.]io/defi-security-best-practices/Config endpointReferenced in .cursorrules files planted via PRs
ddjidd564 (GitHub account)Attacker accountSource of all PRs and hosted payload repos
P-2024-001Campaign markerEmbedded across .cursorrules, CLAUDE.md, and config files
trap-core.jsPayload file48,485 bytes; 1,149-line credential harvester
cargo-build-helper-2026XOR encryption keyHardcoded in all Crates.io build.rs payloads
AUDIT-MATRIX.mdAttacker playbookDescribes ‘Universal AI Agent Extraction Framework’
defi-security-best-practicesAttacker repo nameGitHub Pages site serving payloads and config

Persistence and Propagation Paths

Any of the following files or modifications found on a developer machine or in a project repository should be treated as a compromise indicator until confirmed otherwise:

PERSISTENCE ARTIFACTS
File-based:
  .cursorrules       — hidden zero-width Unicode directives for AI assistants
  CLAUDE.md          — hidden zero-width Unicode directives for Claude Code

Hook-based:
  .git/hooks/pre-push — malicious Git hook
  .bashrc / .zshrc    — shell hook injection

Service-based:
  systemd user service — ~/.config/systemd/user/
  cron job            — crontab -l on affected users

Network propagation:
  SSH                 — authorized_keys modified; stolen keys reused for lateral 
Persistence VectorLocationPurpose
.cursorrulesProject rootPoisons AI assistant with hidden credential-exfil instructions
CLAUDE.mdProject rootPoisons Claude Code with hidden instructions; mirrors .cursorrules
Git pre-push hook.git/hooks/pre-pushExecutes payload on every git push from compromised repo
Shell hook~/.bashrc, ~/.zshrcExecutes payload on every new shell session
systemd service~/.config/systemd/user/Maintains persistence across reboots
cron jobUser crontabScheduled re-execution of harvesting payload
SSH authorized_keys~/.ssh/authorized_keysGrants attacker persistent SSH access; enables lateral movement

Zero-Width Unicode Detection

# Scan .cursorrules and CLAUDE.md for hidden Unicode
grep -rP '[\x{200B}\x{200C}\x{200D}\x{FEFF}]' . --include='.cursorrules' --include='*.md'

# Python inspection
python3 -c "
with open('.cursorrules', 'r') as f:
    content = f.read()
for i, c in enumerate(content):
    if ord(c) in [0x200B, 0x200C, 0x200D, 0xFEFF]:
        print(f'Hidden char U+{ord(c):04X} at position {i}')
"

Exposure Analysis

EnvironmentRisk LevelReason
Developer workstations (crypto / DeFi / AI)CriticalDirect target. SSH keys, wallets, cloud credentials coexist on same machine.
CI/CD pipelinesCriticalnpm install and pip install trigger payload. AWS + GitHub tokens present as env vars during build.
AI coding tool environmentsHigh.cursorrules and CLAUDE.md parsed by Cursor and Claude Code. Hidden Unicode instructions fire automatically.
Open-source projectsHighPRs opened to major AI repositories. Merged .cursorrules infects every downstream clone.
Rust build environmentsHighbuild.rs fires during cargo build with no user interaction required.

Protect yourself with the latest threat intelligence, get access to PHOENIX BLUE Today

Real-World Impact

TrapDoor’s credential validation step separates it from unsophisticated stealers. The npm payload actively calls AWS and GitHub APIs to confirm whether harvested tokens are valid, filtering for high-value credentials before exfiltration. AWS tokens that pass validation unlock cloud environments. GitHub tokens expose private repositories, CI secrets, and deployment pipelines.

For crypto and DeFi developers, the Crates.io component specifically targets Sui and Aptos wallet keystores. Blockchain wallet compromise is irreversible — there is no dispute process for on-chain asset theft.

The PR activity against LangChain, LlamaIndex, MetaGPT, and related projects demonstrates reach beyond opportunistic installs. If a poisoned .cursorrules or CLAUDE.md file lands in a popular repository, every developer who subsequently clones that repository and uses an AI coding assistant could have their environment infected without installing any malicious package directly.

The attacker’s AUDIT-MATRIX.md document, hosted at the campaign’s GitHub Pages repository, describes the operation as a ‘Universal AI Agent Extraction Framework’ with staged workflows for capability detection, data extraction, and self-replication. Multiple behaviors documented there — filesystem scanning, AI-facing disguise language, .cursorrules persistence, remote configuration — match what Socket confirmed in live npm payload analysis. The ‘disguise layer’ section explicitly maps credential theft to benign-sounding tasks: security audits, wallet safety checks, cloud configuration validation, and repository security reviews.

Detection Guidance

Log Indicators

node or sh subprocesses spawned from within node_modules directories during or after package installation.

Outbound connections to ddjidd564.github.io from developer workstations or CI environments.

GitHub API calls (GET /user, GET /user/repos) originating from npm postinstall processes — credential validation traffic.

AWS API calls (STS GetCallerIdentity, IAM GetUser) from npm postinstall or build processes.

Outbound HTTP to gist.github.com from cargo build processes — Crates.io payload exfiltration path.

Unexpected modification timestamps on .cursorrules or CLAUDE.md files that do not correspond to any git commit.

Verification Steps for Teams

  1. Audit all lockfiles (package-lock.json, yarn.lock, Pipfile.lock, Cargo.lock) against the full versioned IOC package list above
  2. Search project directories for .cursorrules and CLAUDE.md files; inspect for zero-width Unicode using the detection commands above
  3. Check CI/CD pipeline logs for outbound connections to ddjidd564.github.io during any build step
  4. Review GitHub Actions logs for AWS STS or GitHub /user API calls originating from dependency install steps
  5. Inspect ~/.aws/credentials, ~/.ssh/known_hosts, and browser profile directories on machines that ran flagged packages
  6. For Rust projects: inspect build.rs files in any Crates.io dependency matching the IOC list for outbound network calls or filesystem writes outside the expected build directory
  7. Check systemd user services, cron jobs, and shell RC files on affected machines for persistence artifacts planted by trap-core.js

Scanner References

  • Phoenix Security ASPM: correlates malicious package IOCs against SBOM; flags packages in any pipeline regardless of CVE status
  • Socket Security: confirmed all 34 packages with real-time behavioral detection across npm, PyPI, and Crates.io
  • SBOM analysis: generate SBOM from lockfiles and cross-reference against IOC list — all 34 package names + version ranges documented above
  • GitHub dependency scanning: flag packages with known malicious postinstall hooks

Remediation Guidance

Immediate Actions

  1. Remove all flagged packages from package.json, requirements.txt, and Cargo.toml. Run npm uninstall [package], pip uninstall [package], and cargo remove [package] for each match
  2. Rotate all credentials on any machine or CI environment that installed flagged packages: AWS access keys, GitHub personal access tokens, SSH key pairs, and any API keys in environment variables or .env files
  3. Inspect and delete any .cursorrules and CLAUDE.md files containing zero-width Unicode content or not explicitly authored by your team
  4. Revoke and regenerate SSH key pairs on affected developer workstations; update authorized_keys on all servers those machines had access to
  5. Audit GitHub Actions secrets in repositories whose CI pipelines installed flagged packages; rotate any secrets present during the affected build window
  6. Check and remove persistence artifacts: systemd user services (~/.config/systemd/user/), cron jobs (crontab -l), Git hooks (.git/hooks/pre-push), and shell RC modifications (.bashrc, .zshrc)

Temporary Mitigations (If Full Audit Is Delayed)

  • Block outbound traffic from CI/CD environments to ddjidd564.github.io at the network perimeter
  • Disable postinstall script execution in CI: npm config set ignore-scripts true (test before applying broadly — this breaks legitimate packages with postinstall hooks)
  • Add SAST rules to flag build.rs files containing outbound HTTP calls or filesystem reads outside the expected build output directory
  • Enforce .cursorrules and CLAUDE.md allowlist policies in AI coding tool configurations, restricting which repositories those files are trusted from
  • Pin all Crates.io dependencies to exact versions and manually review any Sui or Move tooling packages added to Cargo.toml

Phoenix Security Recommendations

TrapDoor is a zero-CVE campaign. Every package in this campaign was released without any known-vulnerable version history. Traditional vulnerability scanners searching for CVSS-scored findings return zero results across all 34 packages. The threat is entirely within the malicious code embedded inside packages that appear, at SBOM level, like any other dev dependency.

Phoenix Security correlates SBOM data against behavioral threat intelligence, not just CVE lists. When dev-env-bootstrapper or eth-security-auditor appears in a dependency graph, Phoenix identifies it as a known-malicious package based on campaign IOC correlation, regardless of whether a CVE has been assigned. The 34-package IOC set for TrapDoor can be loaded directly as a named campaign with all version ranges pre-configured.

The full Phoenix ASPM campaign configuration for TrapDoor is available as a ready-to-import JSON file. Load it directly into Phoenix to create the campaign with all 34 packages, version ranges, CWE-506 filter, and IOC domains pre-configured.

The reachability analysis layer adds a second filter. For environments where a flagged package is present, Phoenix traces whether the package’s install lifecycle is reachable in the current build configuration and identifies which pipelines are downstream. That distinction is critical when prioritizing remediation across a large estate.

Remediation campaigns in Phoenix create a tracked backlog against all repositories with flagged packages, assign ownership to the relevant development teams, and verify remediation once packages are removed and credentials rotated.

For the AI injection component: Phoenix’s attack surface management capability identifies which repositories contain .cursorrules and CLAUDE.md files and can flag those with non-standard Unicode content for immediate review.

PHOENIX SECURITY

Phoenix correlates malicious package IOCs against runtime SBOM, identifies pipeline exposure, assigns remediation ownership, and verifies fix — collapsing a zero-CVE supply chain campaign into an owned, trackable backlog rather than a silent ongoing compromise.

External References

  1. Socket Security — TrapDoor Crypto Stealer Full Analysis: https://socket.dev/blog/trapdoor-crypto-stealer-npm-pypi-crates
  2. The Hacker News — TrapDoor Supply Chain Coverage: https://thehackernews.com (May 25, 2026)
  3. Phoenix Security — Claude Code CLI CWE-78 Command Injection Flaws: https://phoenix.security/critical-ci-cd-nightmare-3-command-injection-flaws-in-claude-code-cli-allow-credential-exfiltration/
  4. Attacker C2 infrastructure — ddjidd564 GitHub Pages: ddjidd564.github.io/defi-security-best-practices/
  5. npm publisher IOC — asdxzxc: https://www.npmjs.com/~asdxzxc
  6. PyPI publisher IOCs — asdmini67, dae5411
  7. Crates.io IOC packages — move-* and sui-* series (6 packages, see IOC table)
Francesco is an internationally renowned public speaker, with multiple interviews in high-profile publications (eg. Forbes), and an author of numerous books and articles, who utilises his platform to evangelize the importance of Cloud security and cutting-edge technologies on a global scale.

Discuss this blog with our community on Slack

Join our AppSec Phoenix community on Slack to discuss this blog and other news with our professional security team

From our Blog

An attacker with push access to the Laravel-Lang GitHub organization force-rewrote 700+ git tags across 4 Composer packages on May 22, 2026, injecting an RCE backdoor that fires on every PHP application boot. No CVE was assigned — version pinning offered zero protection. The attack stole CI/CD, cloud, and Kubernetes credentials in 3.16 seconds flat.
Francesco Cipollone
MEGALODON_CI is an active zero-CVE campaign poisoning GitHub Actions workflow files across 3,500+ confirmed public repositories. Automated commits inject a base64-encoded credential harvester that exfiltrates AWS, GCP, and Azure secrets, OIDC tokens, SSH keys, and package registry credentials in a single runner execution. No CVE exists — every traditional scanner is blind to it.
Francesco Cipollone
TeamPCP (UNC6780) breached GitHub’s internal infrastructure on May 19–20, 2026 through a poisoned VS Code extension that ran silently on a developer’s endpoint and exfiltrated approximately 3,800 internal repositories. The attack produced no CVE. Standard CVE-feed scanners, SCA tools, and signed-provenance checks all missed it. This is exactly the zero-CVE developer trust surface gap Phoenix Blue Intelligence and Phoenix Blue Shield are built to close.
Francesco Cipollone
TeamPCP’s Mini Shai-Hulud worm hit GitHub and PyPI simultaneously on May 19–20, 2026. Three backdoored versions of durabletask — Microsoft’s Azure Python SDK with 417,000 monthly downloads — were published and yanked within hours. A poisoned VS Code extension on a GitHub employee device led to the exfiltration of ~3,800 internal repositories, now listed for sale at $50,000. Zero CVEs exist across the entire nine-week campaign. Traditional scanners have no record of any of it.
Francesco Cipollone
OpenAI has disclosed two employee devices were compromised in the May 11, 2026 Mini Shai-Hulud TanStack supply chain attack, with internal source code repositories accessed and iOS, macOS, and Windows code-signing certificates rotated. Mistral AI confirmed one developer device was hit and is facing a $25,000 TeamPCP extortion demand for an alleged 5 GB source code leak. Days later, TeamPCP launched a $1,000 Monero “supply chain attack contest” on BreachForums with the Shai-Hulud worm source code attached, and OX Security disclosed the first observed copycat campaign from a new actor publishing four malicious npm packages. Phoenix Security’s PHX-Neural scanner has independently flagged a 174,659-weekly-download PyPI package (nicegui 3.12.0) with a 100/100 behavioral score and full Shai-Hulud-aligned ATT&CK coverage. This article covers the upstream TanStack wave, the named victim disclosures, the TeamPCP infrastructure aging analysis, the technical breakdown of the four copycat packages, and the PHX-Neural behavioral evidence on the adjacent PyPI signal.
Francesco Cipollone
Contents
Derek

Derek Fisher

Head of product security at a global fintech

Derek Fisher – Head of product security at a global fintech. Speaker, instructor, and author in application security.

Derek is an award winning author of a children’s book series in cybersecurity as well as the author of “The Application Security Handbook.” He is a university instructor at Temple University where he teaches software development security to undergraduate and graduate students. He is a speaker on topics in the cybersecurity space and has led teams, large and small, at organizations in the healthcare and financial industries. He has built and matured information security teams as well as implemented organizational information security strategies to reduce the organizations risk.

Derek got his start in the hardware engineering space where he learned about designing circuits and building assemblies for commercial and military applications. He later pursued a computer science degree in order to advance a career in software development. This is where Derek was introduced to cybersecurity and soon caught the bug. He found a mentor to help him grow in cybersecurity and then pursued a graduate degree in the subject.

Since then Derek has worked in the product security space as an architect and leader. He has led teams to deliver more secure software in organizations from multiple industries. His focus has been to raise the security awareness of the engineering organization while maintaining a practice of secure code development, delivery, and operations.

In his role, Jeevan handles a range of tasks, from architecting security solutions to collaborating with Engineering Leadership to address security vulnerabilities at scale and embed security into the fabric of the organization.

Jeevan Singh

Jeevan Singh

Founder of Manicode Security

Jeevan Singh is the Director of Security Engineering at Rippling, with a background spanning various Engineering and Security leadership roles over the course of his career. He’s dedicated to the integration of security practices into software development, working to create a security-aware culture within organizations and imparting security best practices to the team.
In his role, Jeevan handles a range of tasks, from architecting security solutions to collaborating with Engineering Leadership to address security vulnerabilities at scale and embed security into the fabric of the organization.

James

James Berthoty

Founder of Latio Tech

James Berthoty has over ten years of experience across product and security domains. He founded Latio Tech to help companies find the right security tools for their needs without vendor bias.

christophe

Christophe Parisel

Senior Cloud Security Architect

Senior Cloud Security Architect

Chris

Chris Romeo

Co-Founder
Security Journey

Chris Romeo is a leading voice and thinker in application security, threat modeling, and security champions and the CEO of Devici and General Partner at Kerr Ventures. Chris hosts the award-winning “Application Security Podcast,” “The Security Table,” and “The Threat Modeling Podcast” and is a highly rated industry speaker and trainer, featured at the RSA Conference, the AppSec Village @ DefCon, OWASP Global AppSec, ISC2 Security Congress, InfoSec World and All Day DevOps. Chris founded Security Journey, a security education company, leading to an exit in 2022. Chris was the Chief Security Advocate at Cisco, spreading security knowledge through education and champion programs. Chris has twenty-six years of security experience, holding positions across the gamut, including application security, security engineering, incident response, and various Executive roles. Chris holds the CISSP and CSSLP certifications.

jim

Jim Manico

Founder of Manicode Security

Jim Manico is the founder of Manicode Security, where he trains software developers on secure coding and security engineering. Jim is also the founder of Brakeman Security, Inc. and an investor/advisor for Signal Sciences. He is the author of Iron-Clad Java: Building Secure Web Applications (McGraw-Hill), a frequent speaker on secure software practices, and a member of the JavaOne Rockstar speaker community. Jim is also a volunteer for and former board member of the OWASP foundation.

Join our Mailing list!

Get all the latest news, exclusive deals, and feature updates.

The IKIGAI concept
x  Powerful Protection for WordPress, from Shield Security PRO
This Site Is Protected By
Shield Security PRO