Мониторинг Карточка CVE
Открытые данные
К списку уязвимостей
Средний
Патч
Опубликована

CVE-2026-85032

Use-after-free in the MCTP over USB binding when the host disables the class while RX parsing is in progress

Публикация: 03.11.2026·Обновлена: 03.11.2026, 22:18·Europe/Moscow

Что произошло

Автоперевод выключен · оригинальное описание

The MCTP over USB device class in subsys/pmci/mctp/mctp_usb.c splits RX handling across two threads: the system workqueue runs mctp_usb_class_out_work(), which parses host OUT data byte by byte and fills a packet buffer at usb->rx_pkt, while the USB device stack thread runs mctp_usb_class_disable(). The disable handler used k_work_cancel(), which removes a queued work item but returns immediately without waiting for a handler that is already running, and then called mctp_usb_reset_rx_state() to mctp_pktbuf_free() the packet buffer the worker may still be using. Both entry points into mctp_usb_class_disable() are driven by the attached USB host: a SET_CONFIGURATION request and a USB bus reset both reach it via usbd_config_reset() in subsys/usb/device_next/usbd_config.c. A host that streams partial MCTP frames on the bulk OUT endpoint and repeatedly forces a configuration change or bus reset therefore controls both the data being parsed and the moment the teardown runs, and can retry the race indefinitely without credentials or user interaction. If the free lands while the worker holds the pointer, the worker writes host-supplied bytes into freed memory of the dedicated MCTP heap (CONFIG_MCTP_HEAP_SIZE in subsys/pmci/mctp/mctp_memory.c), corrupting recycled buffers or sys_heap free-block metadata; this window requires genuine parallelism, i.e. CONFIG_SMP or a preemptible CONFIG_SYSTEM_WORKQUEUE_PRIORITY. With the default cooperative workqueue the worker can still yield inside mctp_bus_rx() (application callback or a control-message reply blocking in mctp_usb_tx()), after which it resumes and calls mctp_pktbuf_free(usb->rx_pkt) on a pointer the teardown has NULLed, dereferencing NULL and faulting on targets with null-pointer detection. The fix replaces the cancel with k_work_cancel_sync() plus a new struct k_work_sync out_work_sync, so disable waits for the RX worker to finish before draining the FIFO and freeing the packet buffer. The affected code is the MCTP subsystem, which is marked experimental, built only with CONFIG_MCTP_USB.

Что это значит

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

Что делать

Редакционные пояснения, сведения источников и общие рекомендации помечены отдельно
Устранить в течение 30 дней

1. Проверьте, затронуты ли вы

Соберите инвентаризацию и сравните с таблицей затронутых версий. Эти команды только показывают установленные компоненты и сами по себе не доказывают наличие CVE.

Debian / Ubuntu
dpkg-query -W -f='${Package}	${Version}\n'
RHEL / AlmaLinux
rpm -qa --qf '%{NAME}\t%{VERSION}-%{RELEASE}\n'
Windows PowerShell
Get-HotFix | Select-Object HotFixID, InstalledOn
Общая рекомендация, не из бюллетеня вендора

2. Установите исправление

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

Общая рекомендация, не из бюллетеня вендора

3. Временные меры

До проверки бюллетеня ограничьте доступ к затронутому компоненту доверенными узлами. Оцените сегментацию и отключение ненужных интерфейсов с владельцем сервиса; универсального правила WAF для этой CVE не подтверждено.

Общая рекомендация, не из бюллетеня вендора

4. Проверьте следы эксплуатации

Проверьте аномальные входы, новые учётные записи, ошибки и необычные дочерние процессы в затронутом сервисе. Публичные проверенные правила обнаружения не включены в запись; отсутствие сигналов не доказывает отсутствие компрометации.

Общая рекомендация, не из бюллетеня вендора

5. После исправления

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

Продукты и затронутые версии

zephyrproject / zephyr

{
  "status": "affected",
  "version": "4.4.0",
  "lessThan": "4.5.0",
  "versionType": "semver"
}

CVSS: оценки и векторы

CVSS 3.1 · cve4.8
CVSS:3.1/AV:P/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H
AV · Вектор атакифизический доступ
AC · Сложность атакивысокая
PR · Привилегиине нужны
UI · Участие пользователяне нужно
S · Область воздействияне меняется
C · Конфиденциальностьнет
I · Целостностьнизкое
A · Доступностьвысокое
CVSS 3.1 · vulnerabilities@zephyrproject.org4.8
CVSS:3.1/AV:P/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H
AV · Вектор атакифизический доступ
AC · Сложность атакивысокая
PR · Привилегиине нужны
UI · Участие пользователяне нужно
S · Область воздействияне меняется
C · Конфиденциальностьнет
I · Целостностьнизкое
A · Доступностьвысокое

Источники и ссылки

Происхождение полей
{
  "cwes": [
    "cve",
    "nvd"
  ],
  "title": {
    "source": "cve",
    "received_at": "2026-11-03T18:22:17.341984+00:00"
  },
  "scores": [
    "cve",
    "nvd"
  ],
  "status": {
    "source": "cve",
    "received_at": "2026-11-03T18:22:17.341984+00:00"
  },
  "affected": [
    "cve"
  ],
  "published": {
    "source": "cve",
    "received_at": "2026-11-03T18:22:17.341984+00:00"
  },
  "solutions": [],
  "references": [
    "cve",
    "nvd"
  ],
  "description": {
    "source": "cve",
    "received_at": "2026-11-03T18:22:17.341984+00:00"
  },
  "workarounds": [],
  "configurations": []
}

Хронология записи

  1. Данные обновлены03.11.2026, 17:44
  2. Появились сведения об исправлении03.11.2026, 16:49

Личная заметка и статус

Другие CVE того же продукта

УЯЗВИМОСТЬ / ПРОДУКТПРИОРИТЕТCVSSEPSSСИГНАЛЫОПУБЛИКОВАНАКарточка
CVE-2026-85035
Use-after-free via dynamically allocated message queue retained by the CAN RX filter
zephyrproject / zephyr
Высокий8.8
—
Патч
03.11.2026
CVE-2026-85034
Out-of-bounds write in the Bluetooth GATT client: oversized notification and indication values delivered to subscribers
zephyrproject / zephyr
Средний6.7
—
Патч
03.11.2026
CVE-2026-85033
Bluetooth Classic AVRCP Target: missing TX cleanup on disconnect permanently stalls vendor-dependent responses and leaks them to the next peer
zephyrproject / zephyr
Средний4.6
—
Патч
03.11.2026
CVE-2026-79982
Out-of-bounds write in the USB Bluetooth HCI transport class when a controller-to-host HCI packet exceeds the bulk endpoint maximum packet size
zephyrproject / zephyr
Высокий8.8
0,23 %
Патч
23.10.2026
CVE-2026-79981
DNS resolver reuses a single UDP source port for all queries, easing off-path answer spoofing
zephyrproject / zephyr
Средний6.5
0,12 %
Патч
23.10.2026