No kernel Linux, a seguinte vulnerabilidade foi resolvida: usbip: validar o número_de_packs no usbip_pack_ret_submit() Quando um cliente USB/IP recebe uma resposta RET_SUBMIT, o usbip_pack_ret_submit() sobrescreve incondicionalmente urb->number_of_packs da PDU de rede. Este valor é posteriormente usado como o loop ligado em usbip_recv_iso() e usbip_pad_iso() para iterar sobre urb->iso_frame_desc[], um array flexível cujo tamanho foi fixado no tempo de alocação URB baseado no número * original* de _paquetes do CMD_ SUMBMIT. Um servidor USB/IP malicioso pode definir o número_de_paquetes na resposta a um valor maior do que o originalmente enviado, causando um monte fora de limites gravar quando o usbip_recv_iso() escreve para urb->iso_frame_desc[i] além da região alocada. KASAN confirmou isso com o kernel 7.0.0 -rc 5: BUG: KASAN: laje- fora-de-conjuntos em usbip_recv_iso+ 0 x 46 a/ 0 x 640 Gravação do tamanho 4 no addr ffff 888106351 d 40 por tarefa vhci_rx/ 69 O endereço de buggy está localizado 0 bytes à direita da alocação 320 -byte região [ffff 888106351 c 00, ffffff 888106351 d 40 ) O lado servidor (stub_rx.c) e o lado gadget (vudc_rx.c) já validam o número_de_paquetes no caminho CMD_SUBMIT desde que comete o c 6688 ef 9 f 297 ("usbip: corrigir stub_rx: endurecer o caminho CMD_SUBMIT para lidar com entrada maliciosa") e b 78 d 830 f 0049 ("usbip: corrigir vudc_rx: endurecer o caminho CMD_SUBMIT para lidar com entrada maliciosa"). O lado servidor valida contra USBIP_MAX_ISO_PACKETS porque ainda não existe nenhum URB nesse ponto. No lado do cliente temos o URB original, para que possamos usar o limite mais apertado: a resposta não deve exceder o número original_de_paquetes. Isto reflete a validação existente do_ comprimento real contra o_break_length no usbip_recv_xbuff(), que verifica o valor de resposta contra o tamanho original da alocação. Série do Kelvin Mbogo ("usb: usbip: corrigir o transbordo de inteiros no usbip_recv_iso()", v 2 ) endurece as próprias funções do lado de receção; este patch complementa o trabalho ao pegar o valor ruim na sua fonte -- no usbip_pack_ ret_ submit() antes da sobrescrição -- e usando a alocação por URB mais apertada ligada ao invés do limite global USBIP_ MAX_ ISO_ PACKETS. Corrija isso verificando o rpdu->number_of_packets contra urb->number_of_packets no usbip_pack_ret_submit() antes da sobreescritura. Na violação, pince a zero para que o usbip_recv_iso() e o usbip_pad_iso() retornem com segurança mais cedo.

O registro de base de dados de vulnerabilidade nacional CVE- 2026 - 31607 foi publicado em 2026 - 04 - 24 T 15: 16: 39.940 Z e última modificação em 2026 - 08 - 21 T 13: 17: 15.973 Z. O seu estado registrado é modificado.

métricas de vulnerabilidade gravadas: CVSS 3.1, pontuação de base 9.8, gravidade CRÍTICA, vetor CVSS: 3.1 /AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, pontuação de exploração 3.9, pontuação de impacto 5.9.

Classificações de fraqueza associadas: CWE- 787, CWE- 805.

Os produtos ou plataformas nomeados nos dados de aplicabilidade incluem: kernel linux linux.

O registro NVD inclui referências de suporte documentando a vulnerabilidade, tecnologia afetada ou informações de remediação.