TrapDoor — це не класична вразливість із CVE, а активна supply-chain кампанія, у якій шкідливі пакети для npm, PyPI і Crates.io крадуть секрети розробників та намагаються впливати на AI coding assistants через файли CLAUDE.md і .cursorrules. За відкритими звітами, кампанія охопила понад 34 пакети і 384 версії, а підтверджені артефакти датуються 19 травня 2026 року [1].
Практичний ризик простий: один встановлений пакет може запускатися під час npm install, імпорту Python-модуля або cargo build, після чого шукає SSH-ключі, GitHub-токени, AWS credentials, змінні середовища, browser data та crypto wallet keystores. Якщо така залежність потрапила на робочу станцію або у CI, потрібно розглядати машину як потенційно скомпрометовану.
Що відрізняє TrapDoor
Звичайні malicious-package кампанії зазвичай крадуть дані одразу після запуску install hook. TrapDoor додає ще один шар: payload може створювати або змінювати CLAUDE.md і .cursorrules, вставляючи приховані інструкції через zero-width Unicode символи [2]. У редакторі такі символи можуть виглядати порожнім або нешкідливим текстом, але AI assistant читає повний Unicode-потік і може прийняти інструкцію як довірений контекст проєкту.
Це особливо небезпечно для команд, які активно використовують Cursor, Claude Code або схожі інструменти у репозиторіях із зовнішніми PR, fork-based workflow чи швидким dependency testing.
Хто має перевірити середовище
| Сценарій | Що перевірити | Чому це важливо |
|---|---|---|
| npm-проєкти | package.json, lockfiles, install logs | npm payload запускається через postinstall і шукає секрети на workstation або runner. |
| Python-проєкти | requirements.txt, lockfiles, imports | PyPI-пакети можуть виконувати віддалений JavaScript через node -e. |
| Rust/Sui/Move tooling | Cargo.toml, Cargo.lock, build.rs | Crates.io payload запускається під час build і може шукати wallet keystores. |
| AI-assisted development | CLAUDE.md, .cursorrules, PR branches | Приховані Unicode-інструкції можуть потрапити у контекст AI assistant. |
Що зробити зараз
- Звірте dependency files з IOC-списками. Перевірте package names і версії з Phoenix/CSA/THN-звітів, особливо crypto, DeFi, Solana, Sui, Move та AI tooling packages.
- Пошукайте zero-width Unicode. Для
CLAUDE.mdі.cursorrulesвикористайте grep або скрипт, який шукаєU+200B,U+200C,U+200DіU+FEFF. - Не довіряйте “порожнім” AI-конфігам. Якщо файл з’явився після install/build/import або прийшов із стороннього PR, видаліть його та перевірте git history.
- Ротуйте секрети після встановлення підозрілого пакета. Міняйте GitHub PAT, SSH keys, cloud access keys, API keys, registry tokens і wallet-related secrets.
- Перевірте workstation на malware persistence. Якщо install/build запускався локально, зробіть повну перевірку системи. Для Windows-робочих станцій можна використати Gridinsoft Anti-Malware як другий погляд після видалення підозрілих залежностей.
- Перегляньте CI logs. Шукайте AWS STS, GitHub API calls, outbound traffic до attacker-controlled GitHub Pages/Gists, а також запуск скриптів із install/build кроків.
Чому CVE-сканер може нічого не показати
TrapDoor не є “вразливою версією” легітимної бібліотеки. Шкідливим є сам пакет. Тому CVSS/CVE-only процеси можуть показати нуль знахідок, навіть коли lockfile містить malicious dependency. Для таких кампаній потрібні malicious-package feeds, allowlisting, dependency review, install-script restrictions і перевірка поведінки package scripts.
Як зменшити ризик повторення
- Вимикайте install scripts у CI там, де це реально протестовано: наприклад,
npm config set ignore-scripts trueможе ламати легітимні пакети, тому його треба впроваджувати контрольовано. - Додавайте
CLAUDE.md,.cursorrulesта аналоги до code-review policy. Це не просто documentation files, а поведінкові інструкції для інструментів. - Не відкривайте pull request branches від невідомих авторів у робочому середовищі з реальними секретами.
- Виносьте cloud keys, registry tokens і wallet secrets з developer machines, де це можливо.
Суміжний ризик для репозиторіїв: командам із self-hosted Git варто перевірити кроки зменшення ризику Gogs RCE, особливо відкриту реєстрацію та створення репозиторіїв.
Окремий випадок із легітимним пакетом: офіційний Jscrambler CLI пізніше скомпрометували у п’яти npm-релізах. Перевірка версій Jscrambler і хоста пояснює, чому для 8.18.0 та 8.20.0 потрібно аналізувати також runtime history, а не лише install scripts.
FAQ
TrapDoor має CVE?
Ні. Це malicious-package кампанія, а не одна патчена вразливість. Потрібно перевіряти IOC-пакети, lockfiles і поведінку install/build scripts.
Чи достатньо видалити пакет?
Ні, якщо пакет вже запускався. Після виконання install/import/build потрібно ротувати доступні секрети та перевірити persistence artifacts.
Чому важливі CLAUDE.md і .cursorrules?
AI coding tools можуть читати ці файли як інструкції проєкту. Якщо у них є приховані Unicode-команди, assistant може виконувати небажані дії без очевидного видимого тексту.
References
- Phoenix Security Research. “TrapDoor Supply Chain Campaign: Cross-Ecosystem Credential Theft and AI Assistant Poisoning via npm, PyPI, and Crates.io.” Phoenix Security, May 2026, accessed May 27, 2026. https://phoenix.security/trapdoor-supply-chain-ai-poisoning-npm-pypi-crates/
- Cloud Security Alliance. “TrapDoor: Supply Chain Attack Poisons AI Coding Assistants.” CSA Lab Space, May 2026, accessed May 27, 2026. https://labs.cloudsecurityalliance.org/research/csa-research-note-trapdoor-multi-ecosystem-supply-chain-ai-t/
- The Hacker News Staff. “TrapDoor Supply Chain Attack Spreads Credential-Stealing Malware via npm, PyPI, and CratesIO.” The Hacker News, May 25, 2026, accessed May 27, 2026. https://thehackernews.com/2026/05/trapdoor-supply-chain-attack-spreads.html
