CVE-2026-80557 in Linuxinformação

Sumário

de VulDB • 26/08/2026

No kernel do Linux, a seguinte vulnerabilidade foi corrigida:

libceph: corrige leitura fora dos limites (OOB) em decode_watchers() devido à falta de verificação de limites

ceph_start_decoding() valida se restam struct_len bytes no buffer após o cabeçalho de codificação, mas aceita struct_len=0 como válido: ceph_decode_need(p, end, 0, bad) sempre é bem-sucedido. Quando um OSD malicioso ou comprometido envia uma resposta obj_list_watch_response_t com struct_len=0, ceph_start_decoding() retorna sucesso com p == end, deixando zero bytes garantidos para leituras subsequentes.

A função imediatamente seguinte, ceph_decode_32(p) em decode_watchers(), não possui verificação de limites precedente. Com p == end, isso resulta em uma leitura de 4 bytes além do limite validado do buffer. O valor lixo é então passado diretamente para kzalloc_objs() como a contagem de watchers.

A função irmã decode_watcher() já utiliza as variantes seguras (ceph_decode_copy_safe, ceph_decode_64_safe, ceph_decode_skip_32) após sua própria chamada em ceph_start_decoding(). decode_watchers() é o único local que usa a variante bruta, confirmando uma falha de implementação.

Correção substituindo ceph_decode_32(p) por ceph_decode_32_safe(p, end, *num_watchers, bad), consistente com o padrão estabelecido.

Modelo do atacante: um OSD malicioso ou comprometido em uma implantação Ceph multi-inquilino (por exemplo, nuvem) pode acionar isso contra qualquer cliente de kernel que chame CEPH_OSD_OP_LIST_WATCHERS, sem necessidade de privilégios adicionais além da criação da sessão OSD.

[ idryomov: reduz o log de alterações ]

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsável

Linux

Reservar

26/08/2026

Divulgação

26/08/2026

Moderação

aceite

Entrada

VDB-395865

CPE

pronto

EPSS

0.00000

KEV

não

Atividades

muito baixo

Fontes

Want to stay up to date on a daily basis?

Enable the mail alert feature now!