Vulnerabilidad en kernel de Linux (CVE-2021-47288)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-125
Lectura fuera de límites
Fecha de publicación:
21/05/2024
Última modificación:
23/12/2024
Descripción
En el kernel de Linux, se resolvió la siguiente vulnerabilidad: medios: ngene: corrige un error fuera de los límites en ngene_command_config_free_buf(). Corrige un error de hace 11 años en ngene_command_config_free_buf() mientras se solucionan las siguientes advertencias detectadas con -Warray-bounds: arch/alpha/include/asm/string.h:22:16: advertencia: el desplazamiento '__builtin_memcpy' [12, 16] del objeto en 'com' está fuera de los límites del subobjeto referenciado 'config' con tipo 'carácter sin firmar ' en el desplazamiento 10 [-Warray-bounds] arch/x86/include/asm/string_32.h:182:25: advertencia: el desplazamiento '__builtin_memcpy' [12, 16] del objeto en 'com' está fuera de los límites de subobjeto referenciado 'config' con tipo 'unsigned char' en el desplazamiento 10 [-Warray-bounds] El problema es que el código original está intentando copiar 6 bytes de datos en un miembro de tamaño de un byte _config_ de la estructura incorrecta FW_CONFIGURE_BUFFERS, en una sola llamada a memcpy(). Esto provoca una advertencia legítima del compilador porque memcpy() sobrepasa la longitud de &com.cmd.ConfigureBuffers.config. Parece que la estructura correcta es FW_CONFIGURE_FREE_BUFFERS, porque contiene 6 miembros más además del encabezado _hdr_. Además, el nombre de la función ngene_command_config_free_buf() sugiere que la intención real es ConfigureFreeBuffers, en lugar de ConfigureBuffers (que tiene lugar en la función ngene_command_config_buf(), arriba). Solucione este problema encerrando esos 6 miembros de la estructura FW_CONFIGURE_FREE_BUFFERS en una nueva configuración de estructura y use &com.cmd.ConfigureFreeBuffers.config como dirección de destino, en lugar de &com.cmd.ConfigureBuffers.config, al llamar a memcpy(). Esto también ayuda con los esfuerzos continuos para habilitar globalmente -Warray-bounds y acercarnos a poder ajustar las rutinas FORTIFY_SOURCE en memcpy().
Impacto
Puntuación base 3.x
7.10
Gravedad 3.x
ALTA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 2.6.34 (incluyendo) | 4.4.277 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.5 (incluyendo) | 4.9.277 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.10 (incluyendo) | 4.14.241 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.15 (incluyendo) | 4.19.199 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (incluyendo) | 5.4.136 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (incluyendo) | 5.10.54 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.13.6 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:5.14:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:5.14: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/4487b968e5eacd02c493303dc2b61150bb7fe4b2
- https://git.kernel.org/stable/c/8d4abca95ecc82fc8c41912fa0085281f19cc29f
- https://git.kernel.org/stable/c/b9a178f189bb6d75293573e181928735f5e3e070
- https://git.kernel.org/stable/c/c6ddeb63dd543b5474b0217c4e47538b7ffd7686
- https://git.kernel.org/stable/c/e617fa62f6cf859a7b042cdd6c73af905ff8fca3
- https://git.kernel.org/stable/c/e818f2ff648581a6c553ae2bebc5dcef9a8bb90c
- https://git.kernel.org/stable/c/e991457afdcb5f4dbc5bc9d79eaf775be33e7092
- https://git.kernel.org/stable/c/ec731c6ef564ee6fc101fc5d73e3a3a953d09a00
- https://git.kernel.org/stable/c/4487b968e5eacd02c493303dc2b61150bb7fe4b2
- https://git.kernel.org/stable/c/8d4abca95ecc82fc8c41912fa0085281f19cc29f
- https://git.kernel.org/stable/c/b9a178f189bb6d75293573e181928735f5e3e070
- https://git.kernel.org/stable/c/c6ddeb63dd543b5474b0217c4e47538b7ffd7686
- https://git.kernel.org/stable/c/e617fa62f6cf859a7b042cdd6c73af905ff8fca3
- https://git.kernel.org/stable/c/e818f2ff648581a6c553ae2bebc5dcef9a8bb90c
- https://git.kernel.org/stable/c/e991457afdcb5f4dbc5bc9d79eaf775be33e7092
- https://git.kernel.org/stable/c/ec731c6ef564ee6fc101fc5d73e3a3a953d09a00