Vulnerabilidad en kernel de Linux (CVE-2023-52775)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-787
Escritura fuera de límites
Fecha de publicación:
21/05/2024
Última modificación:
23/09/2025
Descripción
En el kernel de Linux, se resolvió la siguiente vulnerabilidad: net/smc: evita la corrupción de datos causada por el rechazo. Encontramos un problema de corrupción de datos durante las pruebas de SMC-R en aplicaciones Redis. El punto de referencia tiene una baja probabilidad de informar un error extraño, como se muestra a continuación. "Error: Error de protocolo, obtuve "\xe2" como byte de tipo de respuesta" Finalmente, encontramos que los datos de error recuperados eran los siguientes: 0xE2 0xD4 0xC3 0xD9 0x04 0x00 0x2C 0x20 0xA6 0x56 0x00 0x16 0x3E 0x0C 0xCB 0x04 0x02 1 0x00 0x00 0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xE2 Es bastante obvio que este es un mensaje SMC DECLINE, lo que significa que las aplicaciones recibieron un mensaje de protocolo SMC. Descubrimos que esto se debía a las siguientes situaciones: cliente servidor ¦ propuesta clc -------------> ¦ clc aceptar <------------- ¦ clc confirmar -------------> esperar confirmación de llc enviar confirmación de llc ¦ confirmación de llc fallida ¦ x------ (después de 2 s) tiempo de espera de espera llc confirmar rsp esperar declinar (después de 1 s) tiempo de espera (después de 2s) tiempo de espera ¦ rechazo --------------> ¦ rechazo <-------------- Como resultado, se envió un mensaje de rechazo en la implementación, y este mensaje fue leído desde TCP por la conexión que ya estaba en reserva. Este parche duplica el tiempo de espera del cliente al doble del valor del servidor. Con este simple cambio, los mensajes de rechazo nunca deberían cruzarse ni colisionar (durante el tiempo de espera de confirmación del enlace). Este problema requiere una solución inmediata, ya que las actualizaciones del protocolo implican una solución a más largo plazo.
Impacto
Puntuación base 3.x
7.80
Gravedad 3.x
ALTA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.8 (incluyendo) | 5.10.203 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.141 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.65 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.4 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:6.7:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.7:rc2:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/5ada292b5c504720a0acef8cae9acc62a694d19c
- https://git.kernel.org/stable/c/7234d2b5dffa5af77fd4e0deaebab509e130c6b1
- https://git.kernel.org/stable/c/90072af9efe8c7bd7d086709014ddd44cebd5e7c
- https://git.kernel.org/stable/c/94a0ae698b4d5d5bb598e23228002a1491c50add
- https://git.kernel.org/stable/c/e6d71b437abc2f249e3b6a1ae1a7228e09c6e563
- https://git.kernel.org/stable/c/5ada292b5c504720a0acef8cae9acc62a694d19c
- https://git.kernel.org/stable/c/7234d2b5dffa5af77fd4e0deaebab509e130c6b1
- https://git.kernel.org/stable/c/90072af9efe8c7bd7d086709014ddd44cebd5e7c
- https://git.kernel.org/stable/c/94a0ae698b4d5d5bb598e23228002a1491c50add
- https://git.kernel.org/stable/c/e6d71b437abc2f249e3b6a1ae1a7228e09c6e563



