Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
tanstack-compromise-checker — Скрипт оболочки для обнаружения индикаторов атаки на цепочку поставок TanStack npm (CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx) | Kitploit
Инструменты/GitHubGitHub/fabriziosalmi/tanstack-compromise-checker
Управление индикаторами компрометации (IOC)Сканеры уязвимостейБезопасность контейнеровФорензикаАнализ вредоносных программDevSecOpsОбнаружение СекретовРазведка угрозБезопасность Цепочки Поставок

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Реагирование на Инциденты
GitHubfabriziosalmi/tanstack-compromise-checker

tanstack-compromise-checker

Скрипт оболочки для обнаружения индикаторов атаки на цепочку поставок TanStack npm (CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx)

Репозиторий
216812 дней назадЕщё не проверено
Поделиться

tanstack-compromise-checker

Обнаружение индикаторов npm-атаки на цепочку поставок TanStack на рабочей машине разработчика, в репозитории или на CI-раннере. Bash-скрипт, Docker-образ и GitHub Action — один и тот же движок, три точки входа.

CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx

11 мая 2026 года злоумышленники опубликовали 84 вредоносных версии в 42 пакетах @tanstack/* через отравление кэша GitHub Actions. Полезная нагрузка крадет токены GitHub, токены npm, учетные данные AWS/GCP/Azure и устанавливает демон "мёртвой руки", который уничтожает ~/ в момент отзыва украденного токена.

Быстрый старт

Выберите точку входа, соответствующую вашей среде.

macOS / Linux / WSL2 / Git Bash

TAG=v1.0.0
curl -fsSLO https://github.com/fabriziosalmi/tanstack-compromise-checker/releases/download/$TAG/check.sh
curl -fsSLO https://github.com/fabriziosalmi/tanstack-compromise-checker/releases/download/$TAG/check.sh.sha256
sha256sum -c check.sh.sha256
bash check.sh --online

Docker — работает во всех ОС, поддерживающих Docker (включая Windows)

docker run --rm -v "$PWD":/scan \
  ghcr.io/fabriziosalmi/tanstack-compromise-checker:v1.0.0 \
  /scan true fail tanstack-findings.json '' GHSA-g7cv-rxg3-hmpx

Образ является multi-arch (linux/amd64, linux/arm64) и поставляется с проверкой подлинности сборки, подписанной через GitHub OIDC. Проверьте перед запуском:

gh attestation verify \
  oci://ghcr.io/fabriziosalmi/tanstack-compromise-checker:v1.0.0 \
  --repo fabriziosalmi/tanstack-compromise-checker

GitHub Action — блокировка скомпрометированных зависимостей в CI

permissions: {}

jobs:
  check:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v6
        with:
          persist-credentials: false
      - uses: fabriziosalmi/tanstack-compromise-checker@v1
        with:
          scan-dir: .
          online: 'true'
          fail-on: fail

Полный усиленный рабочий процесс находится в .github/workflows/tanstack-check.yml и это тот же рабочий процесс, который этот репозиторий запускает против самого себя.

Что проверяет скрипт

#ПроверкаОписание
1Мёртвая рука~/.local/bin/gh-token-monitor.sh, LaunchAgents + LaunchDaemons (macOS), systemd user + system units (Linux), запущенные процессы
2Постоянствофайлы rc оболочки, crontab пользователя/системы, /etc/cron.*, XDG автозапуск, глобальный git core.hooksPath
3Учётные данныечувствительные переменные окружения, ~/.npmrc, ~/.yarnrc.yml, ~/.aws/credentials, ~/.config/gh/hosts.yml, ~/.netrc, ~/.docker/config.json, ~/.kube/config, перечисление .env* файлов
4Сетевые IOCзапущенные процессы node с установленными исходящими TCP-соединениями (эвристика, ручная проверка)
5Сканирование репозиторияpackage.json объявленные зависимости + зафиксированные версии в lock-файлах (package-lock.json, yarn.lock, pnpm-lock.yaml)
6Установленныеnode_modules/@tanstack/*/package.json проверяется по известному списку вредоносных версий, затем по реестру npm time[<version>] при --online
7Подсказки Actions.github/workflows/* сканируется на pull_request_target, отсутствие --ignore-scripts, использование actions/cache
8IOC Mini Shai-Huludфайлы полезной нагрузки в node_modules (router_init.js, tanstack_runner.js), @tanstack/setup optionalDependency, подделка конфигураций AI-инструментов, C2-домены в исходниках, паттерны автора коммитов и веток атакующего, помеченные как выкуп npm-токены, вторичные распространяемые червём пакеты, а также информационные эвристики для неизвестных форм полезной нагрузки

С --online скрипт также получает рекомендацию GHSA во время выполнения, чтобы покрытие обнаружения отслеживало актуальное состояние рекомендации вместо жёстко заданного списка версий.

Затронутое семейство: @tanstack/router, @tanstack/react-router, @tanstack/history, @tanstack/start, @tanstack/eslint-plugin-router и связанные пакеты.

Чистые семейства (не затронуты): @tanstack/react-query, @tanstack/react-table, @tanstack/react-virtual, @tanstack/form, @tanstack/store.

Использование

# Быстрая проверка (домашняя папка текущего пользователя)
bash check.sh

# Онлайн-режим: запрос к рекомендации GHSA и времени публикации в npm registry
bash check.sh --online

# Сканирование конкретной директории
bash check.sh --scan-dir /path/to/your/repos

# JSON-вывод для интеграции с CI/SIEM
bash check.sh --json > findings.json

# Предложение команд фиксации для затронутых репозиториев (пробный запуск)
bash check.sh --scan-dir /path/to/repos --fix

# Предоставление расширенного списка известных плохих версий
bash check.sh --bad-versions-file ./extra-bad-versions.txt

Все опции

ФлагОписание
--scan-dir DIRКорневая директория для сканирования (по умолчанию: $HOME). Отказывается сканировать системные директории, такие как /, /etc, /usr.
--onlineЗапрос к рекомендации GHSA и time[<version>] реестра npm для подтверждения компрометации. По умолчанию выключено — требуется явное включение.
--ghsa GHSA-IDПереопределить идентификатор рекомендации, используемый в --online (по умолчанию GHSA-g7cv-rxg3-hmpx).
--attack-window-start ISO, --attack-window-end ISOПереопределить временное окно публикации, используемое в --online.
--fixВывести рекомендуемые команды фиксации для затронутых репозиториев (по умолчанию пробный запуск).
--applyС --fix: явное согласие на выполнение. В настоящее время всё ещё отказывается от слепого update; требуется ручная фиксация.
--yes, -yПропустить запрос подтверждения для --apply.
--jsonВыводить результаты в формате JSON в стандартный вывод (подразумевает --quiet).
--bad-versions-file FДобавить записи (pkg@version, по одной на строку) в список известных плохих версий.
--no-colorОтключить ANSI-цвета.
--quiet, -qПодавить вывод по каждой проверке, выводить только сводку.
-h, --helpПоказать справку.

Коды завершения

КодЗначение
0Чисто — нет индикаторов в пределах сканируемой области
1Только предупреждения — рекомендуется проверка
2Ошибки — присутствуют индикаторы компрометации
3Ошибка инструмента/использования

Позиция безопасности

Этот репозиторий защищается от того же класса атак, которые он обнаруживает. Конкретно:

  • Каждое uses: GitHub Action зафиксировано по 40-символьному SHA коммита, а не по плавающему тегу.
  • Базовый Docker-образ зафиксирован по неизменяемому multi-arch digest манифеста.
  • Каждый рабочий процесс объявляет permissions: {} на верхнем уровне; задачи предоставляют только то, что им нужно.
  • actions/checkout вызывается с persist-credentials: false, чтобы в $GITHUB_WORKSPACE не оставалось аутентифицированного git-удаленного репозитория.
  • step-security/harden-runner — первый шаг каждого рабочего процесса, отслеживающий исходящие соединения раннера.
  • OpenSSF Scorecard запускается еженедельно и при каждом пуше в main; результаты загружаются как SARIF.
  • Каждый релиз публикует аттестацию подлинности сборки SLSA для Docker-образа. Любой может проверить её офлайн с помощью gh attestation.
  • Каждый релиз поставляется с check.sh.sha256, покрывающим все устанавливаемые артефакты.

Полная политика в SECURITY.md.

Скачать инструмент