No kernel Linux, a seguinte vulnerabilidade foi resolvida. svcrdma: acorde garçoms quadrados quando o transporte fechar Os fios estacionados no svc_rdma_sq_wait() no sc_sq_ticket_wait ou sc_send_wait podem ser pendurados indefinidamente no estado TASK_UNINTERRUPTIBLE através do desmonte do transporte, pinning referências svc_xprt e bloqueando svc_rdma_free(). O caminho de fechamento define XPT_ CLOSE antes de invocar xpo_detach e ambos os predicados wait_event incluem um termo XPT_ CLOSE, mas os predicados são reavaliados apenas no wakeup. sc_sq_ticket_ wait não tem caminho de wake dirigido pela conclusão; ele é avançado apenas pelo encadeado de entradas dentro do próprio svc_rdma_sq_ wait(). Sem um despertar explícito ao fechar, os threads estacionados nunca observam XPT_CLOSE, mantenham a referência svc_xprt_get para sempre, e bloqueiam svc_rdma_free() no xpt_ref caindo para zero.

Dois pontos de entrada próximos atingem este transporte. Desmontar localmente o svc_rdma_detach() a partir do svc_handle_xprt() -> svc_delete_xprt() -> xpo_detach() em um thread de trabalho. Um desconexão remota chega ao svc_rdma_cma_handler(), que chama svc_xprt_deferred_close(): que configura o XPT_ CLOSE e encubra o transporte, mas não acessa qualquer RDMA waitqueue, então um trabalhador já estacionado no svc_rdma_sq_wait() nunca reavalia seu predicado. Com cada trabalhador estacionado neste transporte, não há nenhum rolo disponível para executar o desmonte local, e o site de vigia lá é inalcançável. Introduza svc_rdma_xprt_deferred_close(), um envoltório fina svcrdma que chama svc_xprt_deferred_close() e, em seguida, acorda tanto sc_sq_ticket_wait quanto sc_send_wait. Converta diretamente os produtores svcrdma que chamaram svc_xprt_deferred_close(): svc_rdma_cma_handler(), qp_event_handler(), svc_rdma_post_send_err(), svc_rdma_wc_send(), o caminho de saída sendto, os caminhos de erro de conclusão rw e os caminhos de erro de revfrom e lista de leitura.

Acorde ambas as attentes do svc_rdma_detach() também. O caminho svc_xprt_close() síncrono (canal de trás ENOTCONN, remoção do dispositivo via svc_rdma_xprt_done) chega ao desligamento sem fluir através do svc_xprt_deferred_close() e, portanto, não invoca o novo ajudante. [ cel: adicione svc_rdma_xprt_deferred_close() para completar a correção ]. Registro de aconselhamento: GHSA-xxjx- gf 9 q-. 559 x. Identificadores relacionados: CVE- 2026 - 64281.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 25 T 12: 31: 29.000 Z e lista a sua última modificação como 2026 - 07 - 27 T 06: 30: 31.000 Z. Severidade: ALTAMENTE. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H.

Software afetado: o registro de aconselhamento não fornece um pacote normalizado ou faixa de versões. Classificação e evidência: nenhum identificador CWE está listado. O registro contém 3 suporte de referências nestes tipos: AVISO, WEB.