CVE-2026-31521
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-787
Escritura fuera de límites
Fecha de publicación:
22/04/2026
Última modificación:
28/04/2026
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
module: Fix kernel panic when a symbol st_shndx is out of bounds<br />
<br />
The module loader doesn&#39;t check for bounds of the ELF section index in<br />
simplify_symbols():<br />
<br />
for (i = 1; i sh_size / sizeof(Elf_Sym); i++) {<br />
const char *name = info->strtab + sym[i].st_name;<br />
<br />
switch (sym[i].st_shndx) {<br />
case SHN_COMMON:<br />
<br />
[...]<br />
<br />
default:<br />
/* Divert to percpu allocation if a percpu var. */<br />
if (sym[i].st_shndx == info->index.pcpu)<br />
secbase = (unsigned long)mod_percpu(mod);<br />
else<br />
/** HERE --> **/ secbase = info->sechdrs[sym[i].st_shndx].sh_addr;<br />
sym[i].st_value += secbase;<br />
break;<br />
}<br />
}<br />
<br />
A symbol with an out-of-bounds st_shndx value, for example 0xffff<br />
(known as SHN_XINDEX or SHN_HIRESERVE), may cause a kernel panic:<br />
<br />
BUG: unable to handle page fault for address: ...<br />
RIP: 0010:simplify_symbols+0x2b2/0x480<br />
...<br />
Kernel panic - not syncing: Fatal exception<br />
<br />
This can happen when module ELF is legitimately using SHN_XINDEX or<br />
when it is corrupted.<br />
<br />
Add a bounds check in simplify_symbols() to validate that st_shndx is<br />
within the valid range before using it.<br />
<br />
This issue was discovered due to a bug in llvm-objcopy, see relevant<br />
discussion for details [1].<br />
<br />
[1] https://lore.kernel.org/linux-modules/20251224005752.201911-1-ihor.solodrai@linux.dev/
Impacto
Puntuación base 3.x
5.50
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 2.6.12.1 (incluyendo) | 5.15.203 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.168 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.131 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.12.80 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (incluyendo) | 6.18.21 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (incluyendo) | 6.19.11 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:2.6.12:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:2.6.12:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:2.6.12:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:2.6.12:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:2.6.12:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0: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/082f15d2887329e0f43fd3727e69365f5bfe5d2c
- https://git.kernel.org/stable/c/4bbdb0e48176fd281c2b9a211b110db6fd94e175
- https://git.kernel.org/stable/c/5d16f519b6eb1d071807e57efe0df2baa8d32ad6
- https://git.kernel.org/stable/c/6ba6957c640f58dc8ef046981a045da43e47ea23
- https://git.kernel.org/stable/c/ec2b22a58073f80739013588af448ff6e2ab906f
- https://git.kernel.org/stable/c/ef75dc1401d8e797ee51559a0dd0336c225e1776
- https://git.kernel.org/stable/c/f9d69d5e7bde2295eb7488a56f094ac8f5383b92



