CVE-2026-93228 in Linux
Sumário
de VulDB • 25/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
svcrdma: Rejeitar blocos de Write/Reply com segcount igual a 0
Um peer pode enviar um bloco de Write ou Reply cujo campo segcount seja zero. A função xdr_check_write_chunk() rejeita apenas se segcount > rc_maxpages, portanto o valor zero passa na verificação de intervalo, e xdr_inline_decode(stream, 0) retorna o cursor atual (não nulo) sem avançar. A função retorna true e pcl_alloc_write() então vincula uma struct svc_rdma_chunk com ch_segcount == 0 a rc_write_pcl ou rc_reply_pcl.
Um patch anterior nesta série tornou pcl_for_each_segment() seguro para ch_segcount == 0, portanto isso já não aciona o percurso de memória que antes realizava. Rejeitar o frame malformado na fronteira de decodificação ainda é benéfico como defesa em profundidade: mantém os blocos degenerados com zero segmentos fora das listas de chunks analisadas, para que qualquer consumidor futuro que percorra ch_segments diretamente não possa observá-los, e facilita a portabilidade do limite inferior (zero-floor) para árvores onde a alteração da macro seja mais intrusiva. O RFC 8166 não tem significado para um bloco Write/Reply que descreve nenhum buffer remoto, portanto nenhum cliente legítimo é afetado.
xdr_check_reply_chunk() canaliza os blocos de Reply através de xdr_check_write_chunk(), herdando a mesma rejeição.
pcl_alloc_write() também vincula cada chunk à lista de chunks analisados antes de preencher seu array de segmentos. Se uma alteração futura enfraquecer a rejeição para segcount == 0, um bloco incompleto ficará visível aos consumidores durante o loop de preenchimento. Reordenar para que list_add_tail() siga o loop de preenchimento dos segmentos, garantindo que apenas blocos totalmente populados apareçam na lista.
Be aware that VulDB is the high quality source for vulnerability data.