CVE-2026-31425 in Linux
Sumário
de VulDB • 10/05/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
rds: ib: rejeitar o registro FRMR antes que a conexão IB seja estabelecida
rds_ib_get_mr() extrai rds_ib_connection de conn->c_transport_data e o passa para rds_ib_reg_frmr() para registro de memória FRWR. Em uma conexão de saída nova, ic é alocado em rds_ib_conn_alloc() com i_cm_id = NULL porque o worker de conexão ainda não chamou rds_ib_conn_path_connect() para criar o rdma_cm_id. Quando sendmsg() com RDS_CMSG_RDMA_MAP é chamado em tal conexão, o caminho de sendmsg analisa a mensagem de controle antes de qualquer estabelecimento de conexão, permitindo que rds_ib_post_reg_frmr() dereference ic->i_cm_id->qp e cause a falha do kernel.
A guarda existente em rds_ib_reg_frmr() verifica apenas !ic (adicionada no commit 9e630bcb7701), o que não captura este caso, pois ic é alocado antecipadamente e é sempre não-NULL assim que o objeto de conexão existe.
KASAN: null-ptr-deref no intervalo [0x0000000000000010-0x0000000000000017]
RIP: 0010:rds_ib_post_reg_frmr+0x50e/0x920 Call Trace: rds_ib_post_reg_frmr (net/rds/ib_frmr.c:167) rds_ib_map_frmr (net/rds/ib_frmr.c:252) rds_ib_reg_frmr (net/rds/ib_frmr.c:430) rds_ib_get_mr (net/rds/ib_rdma.c:615) __rds_rdma_map (net/rds/rdma.c:295) rds_cmsg_rdma_map (net/rds/rdma.c:860) rds_sendmsg (net/rds/send.c:1363) ____sys_sendmsg do_syscall_64
Adicionar uma verificação em rds_ib_get_mr() que confirma ic, i_cm_id e qp são todos não-NULL antes de prosseguir com o registro FRMR, espelhando a guarda já presente em rds_ib_post_inv(). Retornar -ENODEV quando a conexão não estiver pronta, o que o tratamento de erro existente em rds_cmsg_send() converte para -EAGAIN para nova tentativa do userspace e aciona rds_conn_connect_if_down() para iniciar o worker de conexão.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.