Descripción
En el kernel de Linux se resolvió la siguiente vulnerabilidad: SUNRPC: esperar el callback en curso del handshake TLS del cliente. xs_tls_handshake_sync() entrega a xs_tls_handshake_done() una referencia al transporte inferior antes de enviar la solicitud de handshake. Ante un tiempo de espera agotado o una señal, el proceso que espera de forma síncrona libera esa referencia después de llamar a tls_handshake_cancel(). handshake_req_cancel() devuelve false cuando handshake_complete() ya marcó la solicitud como completada. En ese caso, el callback de finalización aún puede estar ejecutándose, por lo que liberar en el proceso que espera la referencia que pertenece al callback puede liberar el transporte inferior antes de que xs_tls_handshake_done() almacene xprt_err o libere su propia referencia. Si la cancelación pierde frente a la finalización, la corrección espera hasta que xs_tls_handshake_done() señale handshake_done y deja que el callback libere su referencia. Esto replica el manejo del ciclo de vida del handshake del lado del servidor y mantiene sin cambios el valor de retorno ante tiempo de espera agotado o señal.
Qué hacer
Revisa si usas el producto afectado y en qué versión, y aplica la actualización o la mitigación que indique el aviso del fabricante. CISA no ha confirmado que se esté explotando; si eso cambia, esta ficha pasa a «explotada» y te avisamos en el boletín.
Versiones afectadas
- Linux Afectadas: 75eb6af7acdf566c68d61e98e67ee2f235201c02 y anteriores a fb43997407bc17ee39bac81ab708101312e255f5 · 75eb6af7acdf566c68d61e98e67ee2f235201c02 y anteriores a 15431820f448e09f8029b670d5c82aa5917d4625 · 75eb6af7acdf566c68d61e98e67ee2f235201c02 y anteriores a 1de391e8b94e31b45c19c16dbf315e294810c7de · 75eb6af7acdf566c68d61e98e67ee2f235201c02 y anteriores a 7fbb6d2ab0391eb8d1f1a68e6bc263ef02cea61b · 75eb6af7acdf566c68d61e98e67ee2f235201c02 y anteriores a a89dd597458848b463d284b15e42a8078beeb046
- Linux Afectadas: 6.5 No afectadas: 6.6.157 · 6.12.109 · 6.18.50 · 7.2.4 · 7.3
Según el registro de la vulnerabilidad en CVE.org, tal como lo publicó el fabricante. Confirma tu versión exacta en el aviso del fabricante.
Referencias
- Referencia en git.kernel.orggit.kernel.org/stable/c/fb43997407bc17ee39bac81ab708101312e255f5
- Referencia en git.kernel.orggit.kernel.org/stable/c/15431820f448e09f8029b670d5c82aa5917d4625
- Referencia en git.kernel.orggit.kernel.org/stable/c/1de391e8b94e31b45c19c16dbf315e294810c7de
- Referencia en git.kernel.orggit.kernel.org/stable/c/7fbb6d2ab0391eb8d1f1a68e6bc263ef02cea61b
- Referencia en git.kernel.orggit.kernel.org/stable/c/a89dd597458848b463d284b15e42a8078beeb046
Ver el texto original en inglés (CVE.org)
SUNRPC: wait for in-flight client TLS handshake callback
In the Linux kernel, the following vulnerability has been resolved: SUNRPC: wait for in-flight client TLS handshake callback xs_tls_handshake_sync() gives xs_tls_handshake_done() a reference to the lower transport before submitting the handshake request. On timeout or signal, the synchronous waiter drops that reference after calling tls_handshake_cancel(). handshake_req_cancel() returns false when handshake_complete() has already marked the request complete. In that case the completion callback can still be running, so dropping the callback-owned reference in the waiter can free the lower transport before xs_tls_handshake_done() stores xprt_err or drops its own reference. If cancellation loses to completion, wait until xs_tls_handshake_done() signals handshake_done and let the callback release its reference. This mirrors the server-side handshake lifetime handling and keeps the timeout or signal return value unchanged.