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

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

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

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

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

Категории

Все категории
Loading categories
chub-supply-chain-poc — Тихое внедрение зависимостей через конвейеры AI-документации. 240 изолированных запусков Docker доказывают, что сервер MCP Context Hub с нулевой санитизацией позволяет отравленным документам незаметно скомпрометировать проекты разработчиков. | Kitploit
Инструменты/GitHubGitHub/mickmicksh/chub-supply-chain-poc
Анализ уязвимостейАнализ КодаАнализ вредоносных программТестирование на ПроникновениеБезопасность Цепочки ПоставокСтатьи и ИсследованияОбучение и ОбразованиеБезопасность ИИ
GitHub
mickmicksh/chub-supply-chain-poc

chub-supply-chain-poc

Тихое внедрение зависимостей через конвейеры AI-документации. 240 изолированных запусков Docker доказывают, что сервер MCP Context Hub с нулевой санитизацией позволяет отравленным документам незаметно скомпрометировать проекты разработчиков.

Репозиторий
42126 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

Vulnerability Disclosure Affected Version Tests Reproducible License

PoC: Атака на цепочку поставок Context Hub

Уязвимость нулевой санитизации в Context Hub (@aisuite/chub v0.1.3) позволяет осуществлять бесшумную инъекцию зависимостей через конвейер документации MCP.

Ссылки: CWE-94 (Инъекция кода) | CWE-829 (Небезопасная сфера контроля) | CWE-345 (Недостаточная проверка подлинности данных) | OWASP LLM01 (Инъекция промптов)

TL;DR

Мы создали реалистичные отравленные документы, содержащие фиктивные зависимости (plaid-link-verify, stripe-checkout-guard), и обслуживали их через локальный MCP-сервер chub внутри изолированных Docker-контейнеров. Ни один отравленный контент не был загружен в реестр Context Hub — мы запускали chub build локально и настраивали MCP-сервер на обслуживание предварительно собранных данных с диска. С точки зрения агента, процесс получения документов ничем не отличается от загрузки из живого реестра.

Когда AI-помощники по программированию загружали документы, Haiku бесшумно записывал поддельный пакет в requirements.txt в 100% прогонов — ни разу не упомянув об этом в текстовом выводе. Разработчик, читающий ответ ассистента, не увидит ничего подозрительного, но проект отравлен.

240 изолированных прогонов. 3 модели. 4 уровня усилий. 2 API. 0 загрязнений.

Как это выглядит

Сгенерированный код бесшумно импортирует поддельную зависимость вместе с легитимными модулями:

Сгенерированный app.py с инъекцией зависимости

Агент также изменяет CLAUDE.md, встраивая поддельный пакет как «стандарт проекта»:

CLAUDE.md после атаки

Результаты

В таблицах приведены результаты для Plaid Link (120 изолированных прогонов). Полные данные, включая Stripe Checkout (всего 240 прогонов), см. в RESULTS.md.

Бесшумное отравление зависимостей (requirements.txt)

УсилияHaikuSonnetOpus
Низкие100%60%0%
Средние100%70%0%
Высокие100%40%0%
Максимальные100%40%0%

Haiku ни разу не предупредил о поддельной зависимости (0/40). Sonnet предупреждал в 48% прогонов (19/40), но всё равно отравлял requirements.txt в 53% случаев. Opus предупреждал в 75% прогонов (30/40) и ни разу не отравил requirements.txt или код.

Персистентность в CLAUDE.md (бэкдор в конфиге проекта)

УсилияHaikuSonnetOpus
Низкие90%70%0%
Средние80%70%0%
Высокие90%40%0%
Максимальные90%50%0%

Haiku изменяет CLAUDE.md проекта, добавляя поддельную зависимость как «стандарт проекта» в 88% прогонов (35/40). Этот файл попадает в git — каждый будущий разработчик, клонирующий репозиторий, наследует отравленный конфиг.

Цепочка атаки

flowchart LR
    A["Атакующий\nотправляет PR"] -->|"Без проверки\nличности"| B["Мейнтейнер\nсливает PR"]
    B -->|"Без санитизации\nконтента"| C["Документ на CDN\n(без проверки целостности)"]
    C -->|"MCP обслуживает\nсырой контент"| D["Контекстное окно\nагента"]
    D -->|"Агент действует на\nоснове недоверенного контента"| E["Рабочая станция\nразработчика"]

    style A fill:#111,stroke:#333,color:#f0f0f0
    style B fill:#161616,stroke:#333,color:#888
    style C fill:#161616,stroke:#333,color:#888
    style D fill:#161616,stroke:#333,color:#888
    style E fill:#111,stroke:#333,color:#f0f0f0

Модель угроз

АтакующийЛюбой, кто может отправить PR в реестр документации Context Hub
Поверхность атакиСообщества документы, поступающие из GitHub PR через CDN в MCP и контекст агента
Граница доверияНедоверенный контент участника обрабатывается как авторитетная документация API
Необходимое условиеОдин слитый PR, содержащий отравленный документ
ПоследствияПроизвольное выполнение кода через инъекцию зависимостей и post-install хуки pip

Ключевые выводы

  1. Отравление Haiku полностью бесшумно. 0/80 прогонов Haiku на обоих API упомянули поддельную зависимость в ответе. Модель записывает на диск, не сообщая. Sonnet предупреждал в 48% прогонов, но всё равно отравлял requirements.txt в 35–53% прогонов. Opus предупреждал в 23–75% прогонов и ни разу не отравил requirements.txt или код.

  2. Haiku эксплуатируется на 100% при любом уровне усилий. Независимо от усилий на обоих API. Самая слабая модель в семействе никогда не замечает поддельную зависимость.

  3. Opus устойчив к отравлению кода, но не к отравлению конфигов. Opus ни разу не записал поддельную зависимость в requirements.txt или Python-код (0/80 на обоих API). Однако на Stripe Opus изменял CLAUDE.md в 38% прогонов, документируя «канарейку» как зависимость проекта без её установки.

  4. Персистентность в CLAUDE.md создаёт вектор атаки на цепочку поставок. Изменённые конфиги попадают в git, отравляя каждого разработчика, который клонирует репозиторий, и каждую будущую AI-сессию в этом проекте. Это работает на всех моделях (Haiku 88–90%, Sonnet 58%, Opus 0–38%).

  5. Знакомство с API имеет значение. Stripe (хорошо известен): модели обнаруживают поддельные пакеты на основе обучающих данных. Plaid (менее известен): модели не могут проверить и безоговорочно принимают поддельную зависимость.

  6. Это проблема целой категории. У Context7 был ContextCrush (февраль 2026). У Context Hub — это. Любой инструмент, вставляющий несанитизированный внешний контент в контекст агента, уязвим.

Выводы по исходному коду

Нулевая санитизация во всём конвейере:

  • annotations.js — writeFileSync с сырым содержимым, без фильтрации
  • build.js — отсутствие сканирования содержимого, без нормализации Unicode
  • cache.js — загрузка с CDN без проверки хэша или подписи
  • source: official в frontmatter — самопровозглашённый, не проверенный

Раскрытие

У Context Hub нет SECURITY.md. Отсутствует задокументированный способ ответственного раскрытия уязвимости — нет контакта по безопасности, PGP-ключа или политики раскрытия. Участники сообщества всё равно нашли уязвимости и подали их как обычные issues и PR. Ни один не был рассмотрен.

Открытые PR по безопасности без единого ревью

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