CVE-2026-89537 in Linux
Сводка
по VulDB • 12.09.2026
В ядре Linux была устранена следующая уязвимость:
SUNRPC: Отклонение коротких токенов MIC (Message Integrity Code) в соответствии с RFC 4121 в функции gss_krb5_verify_mic_v2
Функция gss_krb5_verify_mic_v2() считывает идентификатор токена по указателю ptr[0..1], байт флагов по ptr[2] и заполнение (padding) по ptr[3..7], а затем передает значения ptr + GSS_KRB5_TOK_HDR_LEN и cksum_len в функцию gss_krb5_mic_build_sg(). Ни один из этих доступов к памяти не проверяет сначала значение read_token->len.
Минимальный безопасный размер токена составляет GSS_KRB5_TOK_HDR_LEN (16) плюс ctx->krb5e->cksum_len (от 12 до 24 байт, в зависимости от типа шифрования enctype). Все вызывающие функции принимают более короткие токены из сети:
- gss_unwrap_resp_integ() проверяет только верхнюю границу (offset + len <= rcv_buf->len) перед выделением памяти через mic.data = kmalloc(len) и передачей ее в gss_verify_mic(). Злоумышленник, использующий вредоносный NFS-сервер, может поэтому предоставить короткий opaque-объект контрольной суммы (checksum), что приведет к малому распределению slab, которое проверщик Kerberos MIC прочитает за пределами выделенной области.
- gss_validate() проверяет только условие len <= RPC_MAX_AUTH_SIZE (400) перед передачей длины, полученной из сети, в функцию gss_validate_seqno_mic(), которая формирует объект mic xdr_netobj и вызывает gss_verify_mic().
- svcauth_gss_verify_header() проверяет только то, что checksum.len >= XDR_UNIT (4 байта), прежде чем передать управление функции gss_verify_mic().
- svcauth_gss_unwrap_integ() проверяет лишь то, что контрольная сумма помещается в буфер gsd->gsd_scratch.
Добавлена проверка длины в начале функции gss_krb5_verify_mic_v2(), до любого доступа к массиву ptr[] или построения scatterlist (списка разрозненных блоков памяти). Корректные токены MIC, полученные из gss_krb5_get_mic_v2(), уже имеют ровно GSS_KRB5_TOK_HDR_LEN + cksum_len байт, поэтому легитимный трафик не будет затронут.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.