CVE-2021-47288

In the Linux kernel, the following vulnerability has been resolved: media: ngene: Fix out-of-bounds bug in ngene_command_config_free_buf() Fix an 11-year old bug in ngene_command_config_free_buf() while addressing the following warnings caught with -Warray-bounds: arch/alpha/include/asm/string.h:22:16: warning: '__builtin_memcpy' offset [12, 16] from the object at 'com' is out of the bounds of referenced subobject 'config' with type 'unsigned char' at offset 10 [-Warray-bounds] arch/x86/include/asm/string_32.h:182:25: warning: '__builtin_memcpy' offset [12, 16] from the object at 'com' is out of the bounds of referenced subobject 'config' with type 'unsigned char' at offset 10 [-Warray-bounds] The problem is that the original code is trying to copy 6 bytes of data into a one-byte size member _config_ of the wrong structue FW_CONFIGURE_BUFFERS, in a single call to memcpy(). This causes a legitimate compiler warning because memcpy() overruns the length of &com.cmd.ConfigureBuffers.config. It seems that the right structure is FW_CONFIGURE_FREE_BUFFERS, instead, because it contains 6 more members apart from the header _hdr_. Also, the name of the function ngene_command_config_free_buf() suggests that the actual intention is to ConfigureFreeBuffers, instead of ConfigureBuffers (which takes place in the function ngene_command_config_buf(), above). Fix this by enclosing those 6 members of struct FW_CONFIGURE_FREE_BUFFERS into new struct config, and use &com.cmd.ConfigureFreeBuffers.config as the destination address, instead of &com.cmd.ConfigureBuffers.config, when calling memcpy(). This also helps with the ongoing efforts to globally enable -Warray-bounds and get us closer to being able to tighten the FORTIFY_SOURCE routines on memcpy().
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.14:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.14:rc2:*:*:*:*:*:*

History

23 Dec 2024, 16:45

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/4487b968e5eacd02c493303dc2b61150bb7fe4b2 - () https://git.kernel.org/stable/c/4487b968e5eacd02c493303dc2b61150bb7fe4b2 - Patch
References () https://git.kernel.org/stable/c/8d4abca95ecc82fc8c41912fa0085281f19cc29f - () https://git.kernel.org/stable/c/8d4abca95ecc82fc8c41912fa0085281f19cc29f - Patch
References () https://git.kernel.org/stable/c/b9a178f189bb6d75293573e181928735f5e3e070 - () https://git.kernel.org/stable/c/b9a178f189bb6d75293573e181928735f5e3e070 - Patch
References () https://git.kernel.org/stable/c/c6ddeb63dd543b5474b0217c4e47538b7ffd7686 - () https://git.kernel.org/stable/c/c6ddeb63dd543b5474b0217c4e47538b7ffd7686 - Patch
References () https://git.kernel.org/stable/c/e617fa62f6cf859a7b042cdd6c73af905ff8fca3 - () https://git.kernel.org/stable/c/e617fa62f6cf859a7b042cdd6c73af905ff8fca3 - Patch
References () https://git.kernel.org/stable/c/e818f2ff648581a6c553ae2bebc5dcef9a8bb90c - () https://git.kernel.org/stable/c/e818f2ff648581a6c553ae2bebc5dcef9a8bb90c - Patch
References () https://git.kernel.org/stable/c/e991457afdcb5f4dbc5bc9d79eaf775be33e7092 - () https://git.kernel.org/stable/c/e991457afdcb5f4dbc5bc9d79eaf775be33e7092 - Patch
References () https://git.kernel.org/stable/c/ec731c6ef564ee6fc101fc5d73e3a3a953d09a00 - () https://git.kernel.org/stable/c/ec731c6ef564ee6fc101fc5d73e3a3a953d09a00 - Patch
First Time Linux
Linux linux Kernel
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.1
CWE CWE-125
CPE cpe:2.3:o:linux:linux_kernel:5.14:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.14:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

21 Nov 2024, 06:35

Type Values Removed Values Added
Summary
  • (es) 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().
References () https://git.kernel.org/stable/c/4487b968e5eacd02c493303dc2b61150bb7fe4b2 - () https://git.kernel.org/stable/c/4487b968e5eacd02c493303dc2b61150bb7fe4b2 -
References () https://git.kernel.org/stable/c/8d4abca95ecc82fc8c41912fa0085281f19cc29f - () https://git.kernel.org/stable/c/8d4abca95ecc82fc8c41912fa0085281f19cc29f -
References () https://git.kernel.org/stable/c/b9a178f189bb6d75293573e181928735f5e3e070 - () https://git.kernel.org/stable/c/b9a178f189bb6d75293573e181928735f5e3e070 -
References () https://git.kernel.org/stable/c/c6ddeb63dd543b5474b0217c4e47538b7ffd7686 - () https://git.kernel.org/stable/c/c6ddeb63dd543b5474b0217c4e47538b7ffd7686 -
References () https://git.kernel.org/stable/c/e617fa62f6cf859a7b042cdd6c73af905ff8fca3 - () https://git.kernel.org/stable/c/e617fa62f6cf859a7b042cdd6c73af905ff8fca3 -
References () https://git.kernel.org/stable/c/e818f2ff648581a6c553ae2bebc5dcef9a8bb90c - () https://git.kernel.org/stable/c/e818f2ff648581a6c553ae2bebc5dcef9a8bb90c -
References () https://git.kernel.org/stable/c/e991457afdcb5f4dbc5bc9d79eaf775be33e7092 - () https://git.kernel.org/stable/c/e991457afdcb5f4dbc5bc9d79eaf775be33e7092 -
References () https://git.kernel.org/stable/c/ec731c6ef564ee6fc101fc5d73e3a3a953d09a00 - () https://git.kernel.org/stable/c/ec731c6ef564ee6fc101fc5d73e3a3a953d09a00 -

21 May 2024, 15:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-05-21 15:15

Updated : 2024-12-23 16:45


NVD link : CVE-2021-47288

Mitre link : CVE-2021-47288

CVE.ORG link : CVE-2021-47288


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-125

Out-of-bounds Read