CVE-2026-74737 в Linux Kernel: OOB-чтение в драйвере TI AM65, уязвимые версии и защита

CVE: CVE-2026-74737
Продукт: Linux Kernel
Дата публикации: 26.08.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,56%; процентиль 44,17%
CISA KEV: нет подтверждения в каталоге CISA KEV

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


Уязвимость в драйвере сетевого контроллера TI AM65 CPSW Nuss приводит к чтению памяти вне границ и падению ядра. Ошибка возникает при обработке входящих пакетов из-за некорректной экстракции идентификатора порта из аппаратного тега. Статья описывает механику сбоя, затронутые версии ядра и способы проверки исправления.

Основные характеристики​


Риск представляет собой отказ в обслуживании (DoS) на уровне ядра, вызываемый сетевым трафиком. Сбой приводит к падению системы, что критично для промышленных и сетевых узлов на базе процессоров TI.

  • Тип ошибки: Чтение памяти вне границ (Out-of-bounds Read) в драйвере am65-cpsw-nuss.
  • CVSS 3.1: 9.8 (CRITICAL). Вектор: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. Высокая оценка отражает сетевой вектор атаки и отсутствие необходимости в привилегиях.
  • Условия атаки: Атакующий должен иметь сетевой доступ к устройству с уязвимым контроллером. Пользовательское взаимодействие не требуется.
  • Эксплуатация: Подтверждено наблюдение периодических падений ядра (sporadic kernel crash) при обработке пакетов. Публичный эксплойт в виде готового PoC в источниках не указан.
  • EPSS: 0,56% (процентиль 44,17%). Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая, но риск для конкретных платформ остается высоким.

Какие продукты и версии затронуты​


Уязвимость затрагивает драйвер am65-cpsw-nuss в ядре Linux, используемый на платформах Texas Instruments AM65x и J721e.

  • Версии ядра: Ошибка была введена в коммите 93a76530316a и присутствует в версиях, содержащих этот коммит, до момента применения исправлений.
  • Исправленные ветки: Патч был применен в ветках stable (6.12.x, 6.11.x, 6.10.x, 6.9.x, 6.8.x, 6.6.x, 6.1.x, 5.15.x) и mainline.
  • Платформы: Системы, использующие сетевой контроллер TI AM65 CPSW Nuss. Для других платформ драйвер не используется, поэтому они не подвержены риску.

Причина уязвимости​


Причина ошибки заключается в некорректной обработке метаданных RX DMA дескриптора в функции am65_cpsw_nuss_rx_packets.

Драйвер извлекает идентификатор MAC-порта из 16-битного поля Source Tag с помощью функции cppi5_desc_get_tags_ids(). Согласно спецификации оборудования, только младшие 8 бит этого поля содержат валидный идентификатор порта. Старшие 8 бит являются аппаратно зарезервированными и могут содержать произвольные значения.

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

Как работает атака​


Атака реализуется через отправку сетевых пакетов на уязвимый интерфейс. При обработке пакета драйвер извлекает port_id из метаданных DMA.

Если в аппаратно зарезервированных битах Source Tag присутствует ненулевое значение, итоговый port_id становится невалидным. Драйвер использует это значение для доступа к массиву портов. Поскольку проверка границ отсутствует, происходит чтение памяти вне выделенного буфера.

В зависимости от состояния памяти это может привести к:

  • Падению ядра (kernel panic) из-за доступа к невалидному адресу.
  • Чтению случайных данных из памяти ядра, что потенциально может привести к утечке информации, хотя основной наблюдаемый эффект — это отказ в обслуживании.

Условия успешной эксплуатации​


Для успешной эксплуатации уязвимости атакующему необходимо:

  • Сетевой доступ: Возможность отправлять IP-пакеты на сетевой интерфейс, обслуживаемый драйвером am65-cpsw-nuss.
  • Целевая платформа: Устройство должно использовать процессоры TI AM65x или J721e с соответствующим сетевым контроллером.
  • Уязвимое ядро: Система должна работать на версии ядра, не содержащей исправление (коммит 36a05d2820077bb3955acb8111e1041d39148037 и его backports).

Возможный сценарий атаки​


Атакующий сканирует сеть в поисках устройств на базе TI AM65. После идентификации целевой системы он отправляет на ее сетевой интерфейс поток пакетов.

При обработке этих пакетов драйвер извлекает port_id из метаданных. Если в зарезервированных битах тега присутствует значение, приводящее к невалидному port_id, драйвер обращается к памяти вне границ.

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

Есть ли публичный эксплойт​


В доступных официальных источниках (NVD, git.kernel.org) не опубликован готовый PoC или эксплойт-код.

Однако в описании CVE указано, что «sporadic kernel crash is observed» (наблюдаются периодические падения ядра). Это подтверждает, что уязвимость эксплуатируема в реальных условиях, хотя механизм может зависеть от конкретных значений в аппаратно зарезервированных битах, которые могут варьироваться в зависимости от состояния оборудования.

Признаки эксплуатации​


Специфичные IOC для этой уязвимости не определены, так как сбой проявляется как падение ядра, а не как скрытая активность.

Неспецифичные признаки, которые могут указывать на эксплуатацию:

  • Падения ядра (Kernel Panic): Логи dmesg или journalctl с сообщениями об OOB-чтении или сегфолте в модуле am65-cpsw-nuss.
  • Аномальный сетевой трафик: Потоки пакетов, направленных на интерфейс, обслуживаемый уязвимым драйвером, особенно если они не соответствуют легитимному трафику.
  • Незапланированные перезагрузки: Частые перезагрузки системы без видимых причин на оборудовании TI AM65.

Как обнаружить атаку​


Для обнаружения эксплуатации или сбоев, вызванных этой уязвимостью, рекомендуется:

  • Мониторинг логов ядра: Настройка алертов на сообщения kernel: BUG: unable to handle page fault или general protection fault с упоминанием am65-cpsw-nuss.
  • Анализ сетевых журналов: Отслеживание аномальных всплесков трафика на интерфейсах, использующих драйвер am65-cpsw-nuss.
  • Проверка версии ядра: Регулярная сверка версии ядра с списком исправленных версий, чтобы убедиться в наличии патча.

Как проверить свою версию​


Для проверки версии ядра и наличия уязвимости используйте следующие команды:

Bash:
uname -r
uname -a
cat /proc/version

Сравните полученную версию с коммитами исправлений в git.kernel.org. Если ваша версия ядра старше коммитов, перечисленных в разделе «Исправление», и не содержит патча port_id &= 0xFF, система уязвима.

Также можно проверить наличие модуля:

Bash:
lsmod | grep am65_cpsw_nuss

Если модуль загружен, а ядро не обновлено, риск присутствует.

Исправление​


Единственный надежный способ устранения уязвимости — обновление ядра до версии, содержащей исправление.

  • Mainline: Коммит 36a05d2820077bb3955acb8111e1041d39148037.
  • Stable 6.12.x: Коммит 14fc40bf28390e0ebee6a072457c36b82c614100.
  • Stable 6.11.x: Коммит 1c0e35ce761131f82062222779d8574849790892.
  • Stable 6.10.x: Коммит 46a8e084a159e638ac2728e96980b65d752d65fd.
  • Stable 6.9.x: Коммит 551688b410d3fb0dae7739724422f268cd9446d6.
  • Stable 6.8.x: Коммит 72e4e3d7efc3b7d85f86abbe8b94f8e45074abe3.
  • Stable 6.1.x: Коммит 914e0100df3435bd14d09f397238e891cf9b7dce.
  • Stable 5.15.x: Коммит 9a220225efd6f58350bbb53fe70bdec08519267f.

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

Временные меры защиты​


Пока обновление ядра не выполнено, можно снизить риск:

  • Изоляция интерфейса: Если возможно, отключите сетевой интерфейс, обслуживаемый драйвером am65-cpsw-nuss, или ограничьте доступ к нему файрволом.
  • Фильтрация трафика: Настройте правила iptables/nftables для блокировки нежелательного трафика на уязвимый интерфейс.
  • Мониторинг: Усиленный мониторинг логов ядра на предмет сбоев, чтобы быстро реагировать на попытки эксплуатации.

Как проверить устранение уязвимости​


После обновления ядра убедитесь, что исправление применено:

  1. Проверьте версию ядра: uname -r.
  2. Убедитесь, что версия соответствует или превышает версию, содержащую патч (см. раздел «Исправление»).
  3. Проверьте наличие строки port_id &= 0xFF в исходном коде драйвера, если вы пересобирали ядро вручную.
  4. Проведите нагрузочное тестирование сетевого интерфейса, чтобы убедиться в отсутствии падений ядра.

Вывод​


CVE-2026-74737 представляет собой критическую уязвимость в драйвере сетевого контроллера TI AM65, ведущую к отказу в обслуживании. Хотя вероятность массовой эксплуатации (EPSS) низкая, для систем на базе TI AM65x и J721e это серьезный риск.

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

Официальные источники​


  1. NVD — CVE-2026-74737
  2. FIRST EPSS — CVE-2026-74737
  3. net: ethernet: ti: am65-cpsw-nuss: Fix port_id extraction from SRC TAG - kernel/git/stable/linux.git - Linux kernel stable tree
  4. net: ethernet: ti: am65-cpsw-nuss: Fix port_id extraction from SRC TAG - kernel/git/stable/linux.git - Linux kernel stable tree
  5. net: ethernet: ti: am65-cpsw-nuss: Fix port_id extraction from SRC TAG - kernel/git/stable/linux.git - Linux kernel stable tree
  6. net: ethernet: ti: am65-cpsw-nuss: Fix port_id extraction from SRC TAG - kernel/git/stable/linux.git - Linux kernel stable tree
  7. net: ethernet: ti: am65-cpsw-nuss: Fix port_id extraction from SRC TAG - kernel/git/stable/linux.git - Linux kernel stable tree
  8. net: ethernet: ti: am65-cpsw-nuss: Fix port_id extraction from SRC TAG - kernel/git/stable/linux.git - Linux kernel stable tree
  9. net: ethernet: ti: am65-cpsw-nuss: Fix port_id extraction from SRC TAG - kernel/git/stable/linux.git - Linux kernel stable tree
  10. net: ethernet: ti: am65-cpsw-nuss: Fix port_id extraction from SRC TAG - kernel/git/stable/linux.git - Linux kernel stable tree

История обновлений статьи​


  • 28.08.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ