CVE-2021-47288
Severity CVSS v4.0:
Pending analysis
Type:
CWE-125
Out-of-bounds Read
Publication date:
21/05/2024
Last modified:
23/12/2024
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
media: ngene: Fix out-of-bounds bug in ngene_command_config_free_buf()<br />
<br />
Fix an 11-year old bug in ngene_command_config_free_buf() while<br />
addressing the following warnings caught with -Warray-bounds:<br />
<br />
arch/alpha/include/asm/string.h:22:16: warning: &#39;__builtin_memcpy&#39; offset [12, 16] from the object at &#39;com&#39; is out of the bounds of referenced subobject &#39;config&#39; with type &#39;unsigned char&#39; at offset 10 [-Warray-bounds]<br />
arch/x86/include/asm/string_32.h:182:25: warning: &#39;__builtin_memcpy&#39; offset [12, 16] from the object at &#39;com&#39; is out of the bounds of referenced subobject &#39;config&#39; with type &#39;unsigned char&#39; at offset 10 [-Warray-bounds]<br />
<br />
The problem is that the original code is trying to copy 6 bytes of<br />
data into a one-byte size member _config_ of the wrong structue<br />
FW_CONFIGURE_BUFFERS, in a single call to memcpy(). This causes a<br />
legitimate compiler warning because memcpy() overruns the length<br />
of &com.cmd.ConfigureBuffers.config. It seems that the right<br />
structure is FW_CONFIGURE_FREE_BUFFERS, instead, because it contains<br />
6 more members apart from the header _hdr_. Also, the name of<br />
the function ngene_command_config_free_buf() suggests that the actual<br />
intention is to ConfigureFreeBuffers, instead of ConfigureBuffers<br />
(which takes place in the function ngene_command_config_buf(), above).<br />
<br />
Fix this by enclosing those 6 members of struct FW_CONFIGURE_FREE_BUFFERS<br />
into new struct config, and use &com.cmd.ConfigureFreeBuffers.config as<br />
the destination address, instead of &com.cmd.ConfigureBuffers.config,<br />
when calling memcpy().<br />
<br />
This also helps with the ongoing efforts to globally enable<br />
-Warray-bounds and get us closer to being able to tighten the<br />
FORTIFY_SOURCE routines on memcpy().
Impact
Base Score 3.x
7.10
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 2.6.34 (including) | 4.4.277 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.5 (including) | 4.9.277 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.10 (including) | 4.14.241 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.15 (including) | 4.19.199 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (including) | 5.4.136 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.54 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.13.6 (excluding) |
| cpe:2.3:o:linux:linux_kernel:5.14:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.14:rc2:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- 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



