Ad

CVE-2026-64574

HIGH CVSS 3.1: 7,8 EPSS 0.12%
Обновлено 8 августа 2026
Linux
Параметр Значение
CVSS 7,8 (HIGH)
Уязвимые версии 6.4 — 7.2-rc5
Устранено в версии 6.6.148
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: wifi: mac80211: удалить новые ссылки на пути ошибки обновления vif Когда ieee80211_vif_update_links() добавляет новые ссылки, он выделяет ссылку контейнер для каждого и вызывает ieee80211_link_init() (который регистрирует файлы debugfs для каждой ссылки с file->private_data, указывающими на контейнер) и ieee80211_link_setup(). Если последующий drv_change_vif_links() завершится неудачно, путь ошибки восстанавливает старые указатели и переходит на «свободный», что освобождает новые контейнеры, но никогда не удаляет их записи debugfs и не останавливает ссылки. Файлы debugfs сохраняются с файлом->private_data, висящим на освобожденный контейнер, поэтому более поздний open()+read() (например, link-1/txpower) разыменовывает освобожденную память в ieee80211_if_read_link(), использование после освобождения.

Путь удаления уже правильно разбирает ссылки через ieee80211_tear_down_links(), который удаляет ключи и отладочные файлы каждой ссылки. записи и вызовы ieee80211_link_stop(); путь добавления в ветку ошибок нет. Зафиксируйте be1ba9ed221f («wifi: mac80211: избегайте странного состояния при ошибке путь") исправлен тот же путь ошибки для случая удаления ссылки. (new_links == 0), но оставил без внимания удаление вновь добавленных ссылок. drv_change_vif_links() может завершиться сбоем во время выполнения драйверов MLO (внутренний сбои команд выделения/очереди/прошивки). Удалите записи debugfs новых ссылок и остановите их перед освобождением.

ОШИБКА: KASAN: slab-use-after-free в ieee80211_if_read_link (net/mac80211/debugfs_netdev.c:127) Чтение размера 8 по адресу ffff888011290000 с помощью задачи эксплойта/145. Отслеживание вызова: ... ieee80211_if_read_link (net/mac80211/debugfs_netdev.c:127) short_proxy_read (fs/debugfs/file.c:373) vfs_read (fs/read_write.c:572) ksys_read (fs/read_write.c:716) do_syscall_64 (arch/x86/entry/syscall_64.c:94) запись_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) ... Упс: общая ошибка защиты, вероятно, для неканонического адреса 0xdffffc000000000a RIP: 0010:ieee80211_if_read_link (net/mac80211/debugfs_netdev.c:127) Паника ядра – не синхронизируется: фатальное исключение

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: wifi: mac80211: tear down new links on vif update error path When ieee80211_vif_update_links() adds new links it allocates a link container for each and calls ieee80211_link_init() (which registers the per-link debugfs files with file->private_data pointing into the container) and ieee80211_link_setup(). If the subsequent drv_change_vif_links() fails, the error path restores the old pointers and jumps to 'free', which frees the new containers but never removes their debugfs entries or stops the links. The debugfs files survive with file->private_data dangling at the freed container, so a later open()+read() (e.g. link-1/txpower) dereferences freed memory in ieee80211_if_read_link(), a use-after-free. The removal path already dismantles links correctly via ieee80211_tear_down_links(), which removes each link's keys and debugfs entries and calls ieee80211_link_stop(); the add path on the error branch does not. Commit be1ba9ed221f ("wifi: mac80211: avoid weird state in error path") hardened this same error path for the link-removal case (new_links == 0) but left the newly-added links' teardown unaddressed. drv_change_vif_links() can fail at runtime on MLO drivers (internal allocation / queue / firmware command failures). Remove the new links' debugfs entries and stop them before freeing. BUG: KASAN: slab-use-after-free in ieee80211_if_read_link (net/mac80211/debugfs_netdev.c:127) Read of size 8 at addr ffff888011290000 by task exploit/145 Call Trace: ... ieee80211_if_read_link (net/mac80211/debugfs_netdev.c:127) short_proxy_read (fs/debugfs/file.c:373) vfs_read (fs/read_write.c:572) ksys_read (fs/read_write.c:716) do_syscall_64 (arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) ... Oops: general protection fault, probably for non-canonical address 0xdffffc000000000a RIP: 0010:ieee80211_if_read_link (net/mac80211/debugfs_netdev.c:127) Kernel panic - not syncing: Fatal exception

Характеристики атаки

Способ атаки
Локальный
Нужен локальный доступ
Сложность
Низкая
Легко эксплуатировать
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1

Уязвимые продукты 5

Конфигурация От (включительно) До (исключительно)
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
6.4 6.6.148
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
6.4 6.12.101
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
6.4 6.18.42
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
6.4 7.1.6
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
6.4 7.2-rc5