Ad

CVE-2026-89637

CRITICAL CVSS 3.1: 9,8 EPSS 0.63%
Обновлено 13 сентября 2026
Linux
Параметр Значение
CVSS 9,8 (CRITICAL)
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: smb: клиент: исправлена утечка UAF и буфера в cifs_check_trans2() для некорректного вторичного T2. Когда получен действительный основной ответ TRANSACT2 (mid->resp_buf set, middle->multiRsp true), и последующий вторичный ответ вызывает cifs_check_trans2(), чтобы вернуть false — либо потому, что заголовок SMB недействителен (неправильный формат != 0) или потому, что check2ndT2() отклоняет PDU -- handle_mid() перезаписывает Mid->resp_buf новым буфером (утечка основной буфер) и, поскольку установлен Mid->multiRsp, пропускает сервер->smallbuf/bigbuf NULL-выход. Когда пользовательский поток освобождается Mid->resp_buf, server->smallbuf или server->bigbuf остается висящим; тот поток demux повторно использует его для следующего пакета, что приводит к использованию после освобождения.

Объедините оба условия раннего выхода и, когда Mid->multiRsp уже установить, отменить ожидающую транзакцию: установить multiEnd, вызвать dequeue_mid() с уродливым=true и возвращает true, чтобы handle_mid() завершился не касаясь Mid->resp_buf или указателей буфера сервера.

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

In the Linux kernel, the following vulnerability has been resolved: smb: client: fix UAF and buffer leak in cifs_check_trans2() for malformed secondary T2 When a valid primary TRANSACT2 response has been received (mid->resp_buf set, mid->multiRsp true) and a subsequent secondary response causes cifs_check_trans2() to return false -- either because the SMB header is invalid (malformed != 0) or because check2ndT2() rejects the PDU -- handle_mid() overwrites mid->resp_buf with the new buffer (leaking the primary buffer) and, because mid->multiRsp is set, skips the server->smallbuf/bigbuf NULL-out. When the user thread frees mid->resp_buf, server->smallbuf or server->bigbuf is left dangling; the demux thread reuses it for the next packet, resulting in a use-after-free. Combine both early-exit conditions and, when mid->multiRsp is already set, abort the pending transaction inline: set multiEnd, call dequeue_mid() with malformed=true, and return true so handle_mid() exits without touching mid->resp_buf or the server buffer pointers.

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

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

Последствия

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

Строка CVSS v3.1