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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-10036-speechbrain-rce — SpeechBrain < 1.1.1 — удалённое выполнение кода через метаданные контрольных точек из-за небезопасного разбора CKPT.yaml в PyYAML. | Kitploit
Инструменты/GitHubGitHub/saiteja-erukude/cve-2026-10036-speechbrain-rce
Анализ уязвимостейАнализ КодаЭксплуатацияСтатьи и ИсследованияОбучение и Образование
GitHubsaiteja-erukude/cve-2026-10036-speechbrain-rce

CVE-2026-10036-speechbrain-rce

SpeechBrain < 1.1.1 — удалённое выполнение кода через метаданные контрольных точек из-за небезопасного разбора CKPT.yaml в PyYAML.

Репозиторий
1020 дней назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-10036: SpeechBrain — произвольное выполнение кода через парсинг CKPT.yaml

Серьёзность: Высокая, CVSS 4.0 8.7, CVSS 3.1 8.8 (присвоено VulnCheck, CNA)

Вектор (v4.0): CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Вектор (v3.1): CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Затронуто: SpeechBrain < 1.1.1

Исправлено в: 1.1.1 / коммит 22a6166

CWE: CWE-502 (Десериализация недоверенных данных)

Сообщил: Sai Teja Erukude

CNA: VulnCheck

Опубликовано: 27 августа 2026 г.


Краткое описание

SpeechBrain до версии использует небезопасный загрузчик PyYAML при парсинге метаданных во время восстановления контрольных точек.

1.1.1
CKPT.yaml

Злоумышленник, который может предоставить или изменить каталог контрольных точек SpeechBrain, может разместить вредоносный файл CKPT.yaml внутри каталога контрольной точки CKPT*. Когда жертва вызывает Checkpointer.recover_if_possible(), SpeechBrain перечисляет кандидатов контрольных точек и парсит файл метаданных каждого кандидата с помощью:

root@kitploit:~
yaml.load(fi, Loader=yaml.Loader)

Поскольку yaml.Loader поддерживает теги конструктора объектов Python, такие как !!python/object/apply, управляемые атакующим метаданные контрольной точки могут выполнять код Python во время обнаружения контрольных точек.

Вредоносная контрольная точка не обязательно должна быть выбрана или восстановлена. Выполнение кода происходит, пока SpeechBrain перечисляет кандидатов контрольных точек.

Влияние

Злоумышленник может выполнить произвольный код Python в контексте процесса Python, запускающего SpeechBrain.

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

В зависимости от хостинг-процесса это может позволить:

  • Чтение или изменение файлов, доступных процессу.
  • Доступ к переменным окружения и секретам приложения.
  • Вызов внутренних сервисов, доступных с хоста.
  • Нарушение работы задач обучения, инференса или автоматизации.

Технические детали

Затронутый компонент — это поток восстановления/перечисления контрольных точек SpeechBrain:

root@kitploit:~
Checkpointer.recover_if_possible()
  -> list_checkpoints()
  -> _construct_checkpoint_objects()

Во время перечисления контрольных точек SpeechBrain сканирует дочерние каталоги с именами CKPT*, которые содержат CKPT.yaml. Каждый файл метаданных кандидата парсится до окончательного выбора контрольной точки.

Небезопасный парсинг происходит в speechbrain.utils.checkpoints.checkpoints.py:

root@kitploit:~
meta = yaml.load(fi, Loader=yaml.Loader)

PoC создаёт две контрольные точки:

  • CKPT+poisoned-metadata: более старая вредоносная контрольная точка, чей CKPT.yaml содержит полезную нагрузку PyYAML object-apply.
  • CKPT+benign-newer: более новая безвредная контрольная точка, которая должна быть выбрана по свежести.

Безвредная контрольная точка выбирается, но метаданные вредоносной контрольной точки всё равно выполняются во время перечисления кандидатов. Это демонстрирует выполнение кода во время парсинга метаданных независимо от восстановления контрольной точки.

Доказательство концепции

package_builder.py создаёт структуру контрольных точек, управляемую атакующим.

run_poc.py запускает проверку, вызывает Checkpointer.recover_if_possible() и выводит доказательства выполнения.

Запускать только в локальной тестовой среде:

root@kitploit:~
python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python -B run_poc.py

Ожидаемые доказательства на уязвимых версиях:

root@kitploit:~
speechbrain_version: 1.1.0
installed_package: True
recovery_error: None
benign_checkpoint_selected: True
marker_before_recovery: False
marker_after_recovery: True
marker_contents:
speechbrain_checkpoint_yaml_loader_rce_triggered
success: True

Ключевое доказательство — это то, что benign_checkpoint_selected: True и marker_after_recovery: True появляются вместе. Это показывает, что вредоносная более старая контрольная точка не была выбрана для восстановления, но её метаданные всё равно были распарсены и выполнены, пока SpeechBrain перечислял кандидатов контрольных точек.

Полезная нагрузка намеренно безвредна. Она только записывает эту локальную строку-маркер:

root@kitploit:~
speechbrain_checkpoint_yaml_loader_rce_triggered

Она не запускает оболочку, не подключается к сетевому сервису, не читает секреты, не удаляет данные и не изменяет файлы за пределами каталога PoC.

Устранение

Обновитесь до SpeechBrain 1.1.1 или новее.

Долгосрочное исправление кода — использовать безопасный загрузчик PyYAML для метаданных контрольных точек:

root@kitploit:~
yaml.safe_load(fi)

или:

root@kitploit:~
yaml.load(fi, Loader=yaml.SafeLoader)

Метаданные контрольных точек требуют только скалярные значения, такие как unixtime и end-of-epoch, поэтому конструкция объектов Python не должна быть включена для этого пути парсинга.

Если немедленный патч или обновление недоступны:

  • Не используйте каталоги контрольных точек, артефакты моделей или архивы из недоверенных источников.
  • Изолируйте задачи обучения и инференса SpeechBrain с минимальными привилегиями.
  • Проверяйте или отклоняйте неожиданные теги и поля в CKPT.yaml.
  • Избегайте автоматического возобновления из внешне предоставленных каталогов контрольных точек.

Благодарности

Обнаружено и сообщено Sai Teja Erukude, скоординировано через VulnCheck.

Ссылки

  • Запись CVE: https://www.cve.org/CVERecord?id=CVE-2026-10036
  • Консультация VulnCheck: https://www.vulncheck.com/advisories/speechbrain-arbitrary-code-execution-via-ckpt-yaml-parsing
  • Примечания к выпуску: https://github.com/speechbrain/speechbrain/releases/tag/v1.1.1
  • Pull request: https://github.com/speechbrain/speechbrain/pull/3067
  • Коммит с патчем: https://github.com/speechbrain/speechbrain/commit/22a616646a493871401461f80b2d5cf564cb2850
  • Документация PyYAML: https://pyyaml.org/wiki/PyYAMLDocumentation
  • Локальное руководство: exploit_walkthrough.md
Скачать инструмент