Malware in 42 @tanstack/* packages exfiltrates cloud credentials, GitHub tokens, and SSH keys
On 2026-05-11, between approximately 19:20 and 19:26 UTC, 84 malicious versions across 42 @tanstack/* packages were published to the npm registry. The publishes were authenticated via the legitimate GitHub Actions OIDC trusted-publisher binding for TanStack/router, but the publish workflow itself was not modified. The attacker chained three known vulnerability classes — a pull_request_target "Pwn Request" misconfiguration, GitHub Actions cache poisoning across the fork↔base trust boundary, and runtime memory extraction of the OIDC token from the Actions runner process — to publish credential-stealing malware under a trusted identity. Each affected package received exactly two malicious versions, published a few minutes apart.
- Опубликовано
- 11 мая 2026 г.
- Обновлено
- 4 авг. 2026 г.
- EPSS
- 1,1 % · 63-й процентиль
- CWE
- CWE-506
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
68
На этой неделе
Не ждите следующего окна обслуживания.
- CVSS
- 38 / 40 · 9.6 / 10
- CISA KEV
- 30 / 30 · В списке
- EPSS
- 0 / 30 · 1,1 %
Решение CISA SSVC
- Эксплуатация
- активная
- Автоматизируемо
- нет
- Техническое влияние
- полное
Vulnrichment: входные данные дерева решений CISA.
Оценка CNA и NVD
- NVD
- —
- CNA · GitHub_M
- 9,6
- NVD ещё не выставил свою оценку; показана оценка CNA.
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Активно эксплуатируется
CISA добавило это в каталог активно эксплуатируемых уязвимостей (KEV) 27 мая 2026 г.. Это указывает на реальные атаки, а не теорию.
Срок устранения для госорганов: 10 июн. 2026 г..
Известно об использовании в кампаниях с программами-вымогателями.
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для сотен тысяч уязвимостей в базе; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощьЗатронутые системы
| Вендор | Продукт | CPE |
|---|---|---|
| tanstack | tanstack\/arktype-adapter | cpe:2.3:a:tanstack:tanstack\/arktype-adapter |
| tanstack | tanstack\/eslint-plugin-router | cpe:2.3:a:tanstack:tanstack\/eslint-plugin-router |
| tanstack | tanstack\/eslint-plugin-start | cpe:2.3:a:tanstack:tanstack\/eslint-plugin-start |
| tanstack | tanstack\/history | cpe:2.3:a:tanstack:tanstack\/history |
| tanstack | tanstack\/nitro-v2-vite-plugin | cpe:2.3:a:tanstack:tanstack\/nitro-v2-vite-plugin |
| tanstack | tanstack\/react-router | cpe:2.3:a:tanstack:tanstack\/react-router |
| tanstack | tanstack\/react-router-devtools | cpe:2.3:a:tanstack:tanstack\/react-router-devtools |
| tanstack | tanstack\/react-router-ssr-query | cpe:2.3:a:tanstack:tanstack\/react-router-ssr-query |
| tanstack | tanstack\/react-start | cpe:2.3:a:tanstack:tanstack\/react-start |
| tanstack | tanstack\/react-start-client | cpe:2.3:a:tanstack:tanstack\/react-start-client |
| tanstack | tanstack\/react-start-rsc | cpe:2.3:a:tanstack:tanstack\/react-start-rsc |
| tanstack | tanstack\/react-start-server | cpe:2.3:a:tanstack:tanstack\/react-start-server |
и ещё 159
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- abhishake1 supersurkhet/cli0.0.2
- abhishake1 supersurkhet/cli0.0.3
- abhishake1 supersurkhet/cli0.0.4
- abhishake1 supersurkhet/cli0.0.5
- abhishake1 supersurkhet/cli0.0.6
- abhishake1 supersurkhet/cli0.0.7
- abhishake1 supersurkhet/sdk0.0.2
- abhishake1 supersurkhet/sdk0.0.3
- abhishake1 supersurkhet/sdk0.0.4
- abhishake1 supersurkhet/sdk0.0.5
- abhishake1 supersurkhet/sdk0.0.6
- abhishake1 supersurkhet/sdk0.0.7
- abhishake1 taskflow-corp/cli0.1.24
- abhishake1 taskflow-corp/cli0.1.25
- abhishake1 taskflow-corp/cli0.1.26
- abhishake1 taskflow-corp/cli0.1.27
- abhishake1 taskflow-corp/cli0.1.28
- abhishake1 taskflow-corp/cli0.1.29
- agentworkhq agentwork-cli0.1.4
- agentworkhq agentwork-cli0.1.5
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (GitHub_M). Не зависят от анализа CPE в NVD и обычно опережают его.
@tanstack arktype-adapter
- 1.166.12, 1.166.15затронута
@tanstack eslint-plugin-router
- 1.161.9, 1.161.12затронута
@tanstack eslint-plugin-start
- 0.0.4, 0.0.7затронута
@tanstack history
- 1.161.9, 1.161.12затронута
@tanstack nitro-v2-vite-plugin
- 1.154.12, 1.154.15затронута
@tanstack outer-vite-plugin
- 1.166.53, 1.166.56затронута
@tanstack react-router
- 1.169.5, 1.169.8затронута
@tanstack react-router-devtools
- 1.166.16, 1.166.19затронута
@tanstack react-router-ssr-query
- 1.166.15, 1.166.18затронута
@tanstack react-start
- 1.167.68, 1.167.71затронута
@tanstack react-start-client
- 1.166.51, 1.166.54затронута
@tanstack react-start-rsc
- 0.0.47, 0.0.50затронута
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| npm | @tanstack/arktype-adapter | с 1.166.12 · до 1.166.16 | 1.166.16 |
| npm | @tanstack/arktype-adapter | с 1.166.15 · до 1.166.16 | 1.166.16 |
| npm | @tanstack/eslint-plugin-router | с 1.161.12 · до 1.161.13 | 1.161.13 |
| npm | @tanstack/eslint-plugin-router | с 1.161.9 · до 1.161.13 | 1.161.13 |
| npm | @tanstack/eslint-plugin-start | с 0.0.4 · до 0.0.8 | 0.0.8 |
| npm | @tanstack/eslint-plugin-start | с 0.0.7 · до 0.0.8 | 0.0.8 |
| npm | @tanstack/history | с 1.161.12 · до 1.161.13 | 1.161.13 |
| npm | @tanstack/history | с 1.161.9 · до 1.161.13 | 1.161.13 |
| npm | @tanstack/nitro-v2-vite-plugin | с 1.154.12 · до 1.154.16 | 1.154.16 |
| npm | @tanstack/nitro-v2-vite-plugin | с 1.154.15 · до 1.154.16 | 1.154.16 |
| npm | @tanstack/react-router | с 1.169.5 · до 1.169.9 | 1.169.9 |
| npm | @tanstack/react-router | с 1.169.8 · до 1.169.9 | 1.169.9 |
| npm | @tanstack/react-router-devtools | с 1.166.16 · до 1.166.20 | 1.166.20 |
| npm | @tanstack/react-router-devtools | с 1.166.19 · до 1.166.20 | 1.166.20 |
| npm | @tanstack/react-router-ssr-query | с 1.166.15 · до 1.166.19 | 1.166.19 |
| npm | @tanstack/react-router-ssr-query | с 1.166.18 · до 1.166.19 | 1.166.19 |
| npm | @tanstack/react-start | с 1.167.68 · до 1.167.72 | 1.167.72 |
| npm | @tanstack/react-start | с 1.167.71 · до 1.167.72 | 1.167.72 |
| npm | @tanstack/react-start-client | с 1.166.51 · до 1.166.55 | 1.166.55 |
| npm | @tanstack/react-start-client | с 1.166.54 · до 1.166.55 | 1.166.55 |
| npm | @tanstack/react-start-rsc | с 0.0.47 · до 0.0.51 | 0.0.51 |
| npm | @tanstack/react-start-rsc | с 0.0.50 · до 0.0.51 | 0.0.51 |
| npm | @tanstack/react-start-server | с 1.166.55 · до 1.166.59 | 1.166.59 |
| npm | @tanstack/react-start-server | с 1.166.58 · до 1.166.59 | 1.166.59 |
+60
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| npm:@tanstack/arktype-adapter | 1.166.16 | Реестр пакетов (OSV) |
| npm:@tanstack/eslint-plugin-router | 1.161.13 | Реестр пакетов (OSV) |
| npm:@tanstack/eslint-plugin-start | 0.0.8 | Реестр пакетов (OSV) |
| npm:@tanstack/history | 1.161.13 | Реестр пакетов (OSV) |
| npm:@tanstack/nitro-v2-vite-plugin | 1.154.16 | Реестр пакетов (OSV) |
| npm:@tanstack/react-router | 1.169.9 | Реестр пакетов (OSV) |
| npm:@tanstack/react-router-devtools | 1.166.20 | Реестр пакетов (OSV) |
| npm:@tanstack/react-router-ssr-query | 1.166.19 | Реестр пакетов (OSV) |
| npm:@tanstack/react-start | 1.167.72 | Реестр пакетов (OSV) |
| npm:@tanstack/react-start-client | 1.166.55 | Реестр пакетов (OSV) |
| npm:@tanstack/react-start-rsc | 0.0.51 | Реестр пакетов (OSV) |
| npm:@tanstack/react-start-server | 1.166.59 | Реестр пакетов (OSV) |
| npm:@tanstack/router-cli | 1.166.50 | Реестр пакетов (OSV) |
| npm:@tanstack/router-core | 1.169.9 | Реестр пакетов (OSV) |
| npm:@tanstack/router-devtools | 1.166.20 | Реестр пакетов (OSV) |
| npm:@tanstack/router-devtools-core | 1.167.10 | Реестр пакетов (OSV) |
| npm:@tanstack/router-generator | 1.166.49 | Реестр пакетов (OSV) |
| npm:@tanstack/router-plugin | 1.167.42 | Реестр пакетов (OSV) |
| npm:@tanstack/router-ssr-query-core | 1.168.7 | Реестр пакетов (OSV) |
| npm:@tanstack/router-utils | 1.161.15 | Реестр пакетов (OSV) |
| npm:@tanstack/router-vite-plugin | 1.166.57 | Реестр пакетов (OSV) |
| npm:@tanstack/solid-router | 1.169.9 | Реестр пакетов (OSV) |
| npm:@tanstack/solid-router-devtools | 1.166.20 | Реестр пакетов (OSV) |
| npm:@tanstack/solid-router-ssr-query | 1.166.19 | Реестр пакетов (OSV) |
| npm:@tanstack/solid-start | 1.167.69 | Реестр пакетов (OSV) |
| npm:@tanstack/solid-start-client | 1.166.54 | Реестр пакетов (OSV) |
| npm:@tanstack/solid-start-server | 1.166.58 | Реестр пакетов (OSV) |
| npm:@tanstack/start-client-core | 1.168.9 | Реестр пакетов (OSV) |
| npm:@tanstack/start-fn-stubs | 1.161.13 | Реестр пакетов (OSV) |
| npm:@tanstack/start-plugin-core | 1.169.27 | Реестр пакетов (OSV) |
+12
Статус эксплойта
Готовый эксплойт
Известен готовый инструмент или активное использование в реальных атаках. Это должно быть высшим приоритетом.
Доказательство
- Репозиторий PoC на GitHub ×12
Noroxi не размещает код эксплойтов и не даёт на них ссылок. Показываются имена модулей Metasploit и идентификаторы шаблонов Nuclei (имена, не код); записи Exploit-DB и репозитории PoC даются только числом.
| Источник | Тип | Дата |
|---|---|---|
| Репозиторий PoC на GitHub | stars:0 | 2026-06-25 |
| Репозиторий PoC на GitHub | stars:0 | 2026-05-12 |
| Репозиторий PoC на GitHub | stars:0 | 2026-05-12 |
| Репозиторий PoC на GitHub | stars:0 | 2026-05-12 |
| Репозиторий PoC на GitHub | stars:1 | 2026-05-12 |
| Репозиторий PoC на GitHub | stars:1 | 2026-05-12 |
| Репозиторий PoC на GitHub | stars:2 | 2026-05-13 |
| Репозиторий PoC на GitHub | stars:2 | 2026-05-16 |
| Репозиторий PoC на GitHub | stars:0 | 2026-05-16 |
| Репозиторий PoC на GitHub | stars:1 | 2026-05-18 |
| Репозиторий PoC на GitHub | stars:0 | 2026-05-20 |
| Репозиторий PoC на GitHub | stars:0 | 2026-05-25 |
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
- Публикация
- Первый PoCв тот же день
- CISA KEV+15 дн.
- Сегодня8 окт. 2026 г.+150 дн.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Среди источников нет ссылок на коммит или PR.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
Ночной расчёт связей ничего не нашёл.
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Национальное уведомление (Управление кибербезопасности Турции / USOM)
Официальные уведомления, ссылающиеся на эту запись; рекомендации — на странице ведомства.
- TR-26-0225 · 13 мая 2026 г.(TanStack Router Güvenlik Zafiyeti)
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Учётная запись или пароль не требуются.
- Пользователь должен открыть ссылку или посетить страницу.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- высокое · данные могут быть прочитаны
- Целостность
- высокое · данные или конфигурация могут быть изменены
- Доступность
- высокое · работа сервиса может быть нарушена
Влияние может выйти за пределы уязвимого компонента (область действия меняется).
- Вектор атаки
- Сеть
- Сложность атаки
- Низкая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Требуется
- Область действия
- Изменяется
- Влияние на конфиденциальность
- Высокое
- Влияние на целостность
- Высокое
- Влияние на доступность
- Высокое
Класс уязвимости (CWE)
CWE-506 · Embedded Malicious CodeВектор CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
nvd-secondary
Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
Шаблоны атак (CAPEC)
Техники ATT&CK
- Data Obfuscation: SteganographyT1001.002
- Obfuscated Files or Information: SteganographyT1027.003
- Obfuscated Files or Information: Compile After DeliveryT1027.004
- Obfuscated Files or Information: Embedded PayloadsT1027.009
- Supply Chain Compromise: Compromise Software Dependencies and Development ToolsT1195.001
- Supply Chain Compromise: Compromise Software Supply ChainT1195.002
- Signed Binary Proxy Execution: Compiled HTML FileT1218.001
- Template InjectionT1221
Журнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
- github.com/TanStack/router/issues/7383
- github.com/TanStack/router/security/advisories/GHSA-g7cv-rxg3-hmpx
- www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2026-45321
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.