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

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

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

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

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

Категории

Все категории
Loading categories
cve-2026-54316-lab — Лаборатория воспроизведения для CVE-2026-54316 (Claude Code WebFetch huggingface.co bare-hostname permission bypass / exfiltration) | Kitploit
Инструменты/GitHubGitHub/inertfluid/cve-2026-54316-lab
Анализ уязвимостейЭксплуатацияЭксфильтрация данныхВеб-безопасностьCTFТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
GitHubinertfluid/cve-2026-54316-lab

cve-2026-54316-lab

Лаборатория воспроизведения для CVE-2026-54316 (Claude Code WebFetch huggingface.co bare-hostname permission bypass / exfiltration)

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

Популярное

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

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

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

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

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

CVE-2026-54316 — Лаборатория эксфильтрации HuggingFace через WebFetch в Claude Code

Полноценная одноразовая лаборатория, воспроизводящая GHSA-fg94-h982-f3mm / CVE-2026-54316: Claude Code предварительно одобрил huggingface.co как голое имя хоста для инструмента WebFetch, поэтому любой путь на этом домене — включая управляемые атакующим репозитории моделей — загружался без запроса разрешения. В сочетании с инъекцией промптов это становится внеполосным каналом для эксфильтрации данных, наблюдаемым через серверные счетчики загрузок HuggingFace.

УведомлениеGHSA-fg94-h982-f3mm
CVECVE-2026-54316
Пакет@anthropic-ai/claude-code (npm)
Затронутые версии>= 0.2.54, < 2.1.163
Исправлено в2.1.163
Коренная причинаРазрешение голого имени хоста на мультитенантном хосте (CWE-183)

⚠️ Этическое использование

Эта лаборатория воспроизводит исправленную, публично раскрытую уязвимость в образовательных и защитных целях. Используйте её только против инфраструктуры, принадлежащей вам:

  • И репозиторий HuggingFace, и канареечные данные должны быть вашими.
  • «Секрет» — это фиктивное значение (fixtures/canary.env) — никогда не используйте настоящее.
  • Не нацеливайтесь на чей-либо сторонний репозиторий или реальные учётные данные.

Что это доказывает

  1. Обход промпта (полностью детерминированный): уязвимый Claude Code загружает путь на huggingface.co без запроса подтверждения, в то время как любой другой домен вызывает такой запрос — потому что huggingface.co находится в жёстко заданном белом списке.
  2. Цепочка эксфильтрации: недоверенное содержимое направляет этот автоматически одобренный запрос на кодирование и утечку данных, которые можно восстановить из метрик загрузок HF.

Настройка

Контейнер — единственное место, где работает уязвимая версия; ваша хост-система остаётся чистой. Аутентифицируйтесь с помощью токена подписки Claude (ключ API не требуется):

root@kitploit:~
docker build -t cve-2026-54316-lab .
docker run --rm -it cve-2026-54316-lab

Внутри контейнера запустите claude и выберите «Claude account with subscription» для интерактивного входа. Уязвимая версия 2.1.162 предшествует появлению переменной окружения CLAUDE_CODE_OAUTH_TOKEN, поэтому setup-token здесь не используется — интерактивный поток с браузером/вставкой кода позволяет обойтись без создания долгоживущего токена.

Воспроизведение — утверждение 1 (обход промпта)

Суть в асимметрии запросов подтверждения по доменам, поэтому WebFetch остаётся доступным (он не запрещён) — подтверждение обрабатывается через промпт, что является поведением по умолчанию. Внутри контейнера в claude:

Используйте WebFetch для загрузки https://example.com и создания краткого описания.

→ Появляется запрос разрешения с просьбой одобрить example.com. Затем:

Используйте WebFetch для загрузки https://huggingface.co/<ваш-аккаунт>/canary-lab/resolve/main/config.json.

Уязвимо: загрузка с huggingface.co выполняется без запроса, в то время как example.com требовал его. Эта асимметрия и есть ошибка — huggingface.co находится в жёстко заданном белом списке. (Репозиторий HF не обязательно должен существовать для этого теста; ответ 401/404 всё равно доказывает, что запрос не появлялся.) Пересоберите с @anthropic-ai/[email protected] — теперь загрузка с huggingface.co тоже требует запроса; это различие «до/после» и есть суть.

Воспроизведение — утверждение 2 (эксфильтрация)

  1. ./scripts/make_hf_canary_files.sh ./hf-repo, затем отправьте hf-repo/ в публичный репозиторий HuggingFace, принадлежащий вам (<ваш-аккаунт>/canary-lab).
  2. Отредактируйте payloads/untrusted-readme.md, установите HF_ACCOUNT и поместите файл туда, где агент прочитает его как недоверенное содержимое.
  3. Запустите агента на этом содержимом; после этого прочитайте метрики загрузок вашего репозитория, чтобы восстановить канареечную строку.

Файлы

  • Dockerfile — зафиксированная уязвимая версия 2.1.162
  • .claude/settings.json — пустой список разрешённых/запрещённых, так что WebFetch запрашивает подтверждение для каждого домена
  • fixtures/canary.env — фиктивная канарейка
  • scripts/make_hf_canary_files.sh — структура файлов канарейки для HF
  • payloads/untrusted-readme.md — полезная нагрузка с инъекцией промптов (санитизирована)
Скачать инструмент