CVE-2026-89651 in Linux
Sumário
de VulDB • 11/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
ceph: limitação da decodificação de MDSCapAuth path e fs_name em handle_session()
handle_session() decodifica os registros MDSCapAuth transportados por uma mensagem CEPH_SESSION_OPEN (msg_version >= 6). Para cada registro, as strings de bytes match.path e match.fs_name são lidas primeiro decodificando um comprimento de 32 bits e depois copiando esse número de bytes com a função crua ceph_decode_copy(). Ao contrário dos campos circundantes, que utilizam todas as variantes _safe decode, essas duas cópias não são precedidas por uma verificação de limites ceph_decode_need(), e os campos struct_len das estruturas MDSCapAuth e MDSCapMatch envolventes são ignorados em vez de serem aplicados como um limite superior. Um comprimento maior que os bytes restantes na frente da mensagem faz com que a função ceph_decode_copy() leia além do final do buffer frontal.
A frente da mensagem é uma alocação dedicada (ceph_msg_new2() -> kvmalloc), portanto, a leitura excessiva ocorre fora desse objeto. Um MDS malicioso ou comprometido pode acionar isso com a primeira mensagem pós-conexão na montagem, sem interação do usuário no lado do cliente; sob KASAN, é relatado como uma leitura slab-out-of-bounds em handle_session().
Impacto: um MDS malicioso pode forçar o kernel client a ler até 4 GiB além da alocação frontal da mensagem durante a configuração da sessão, causando a falha do cliente (leitura fora dos limites).
Alterar ambas as cópias para ceph_decode_copy_safe(), que realiza a verificação de limites ceph_decode_need() antes da cópia e faz o branch para o rótulo bad existente, correspondendo ao resto do decodificador e ao caminho de erro que libera o array cap_auths parcialmente decodificado.
VulDB is the best source for vulnerability data and more expert information about this specific topic.