Vulnerabilidad en Linux (CVE-2026-23100)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
04/02/2026
Última modificación:
25/03/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
mm/hugetlb: corregir hugetlb_pmd_shared()<br />
<br />
Serie de parches &#39;mm/hugetlb: correcciones para el uso compartido de tablas PMD (incl. el uso de mmu_gather)&#39;, v3.<br />
<br />
Una corrección funcional, una corrección de regresión de rendimiento y dos correcciones de comentarios relacionadas.<br />
<br />
Limpié mi prototipo que compartí recientemente [1] para la corrección de rendimiento, aplazando la mayoría de las limpiezas que tenía en el prototipo para un momento posterior. Mientras hacía eso, identifiqué las otras cosas.<br />
<br />
El objetivo de este conjunto de parches es ser retroportado a árboles estables "bastante" fácilmente. Al menos el parche #1 y #4.<br />
<br />
El parche #1 corrige que hugetlb_pmd_shared() no detecte ningún uso compartido.<br />
El parche #2 + #3 son simples correcciones de comentarios con las que el parche #4 interactúa.<br />
El parche #4 es una corrección para la regresión de rendimiento reportada debido a transmisiones IPI excesivas durante fork()+exit().<br />
<br />
El último parche trata sobre vaciados de TLB, IPIs y mmu_gather.<br />
Léase: complicado<br />
<br />
Hay muchas limpiezas por hacer en el futuro + una optimización razonable en x86. Pero todo eso está fuera del alcance de esta serie.<br />
<br />
Probado en tiempo de ejecución, con un enfoque en corregir la regresión de rendimiento usando el reproductor original [2] en x86.<br />
<br />
Este parche (de 4):<br />
<br />
Cambiamos de usar (erróneamente) el recuento de páginas a un recuento compartido independiente. Ahora, las tablas de páginas compartidas tienen un refcount de 1 (excluyendo referencias especulativas) y en su lugar usan ptdesc-&gt;pt_share_count para identificar el uso compartido.<br />
<br />
No convertimos hugetlb_pmd_shared(), así que ahora mismo, nunca detectaríamos una tabla PMD compartida como tal, porque compartir/dejar de compartir ya no afecta el refcount de una tabla PMD.<br />
<br />
La migración de páginas, como mbind() o migrate_pages(), permitiría migrar folios mapeados en dichas tablas PMD compartidas, aunque los folios no sean exclusivos. En smaps los contabilizaríamos como "privados" aunque sean "compartidos", y estaríamos configurando erróneamente el PM_MMAP_EXCLUSIVE en la interfaz pagemap.<br />
<br />
Corregirlo usando correctamente ptdesc_pmd_is_shared() en hugetlb_pmd_shared().
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:*:*:*:*:*:*:*:* | 5.10.239 (incluyendo) | 5.11 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.15.186 (incluyendo) | 5.16 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.1.142 (incluyendo) | 6.2 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.6.72 (incluyendo) | 6.6.127 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.12.9 (incluyendo) | 6.12.74 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13.1 (incluyendo) | 6.18.8 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:6.13:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.13:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.13:rc7:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc6:*:*:*:*:*:* |
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/3a18b452dd5f7f1652c2e92f8ae769aa17a66c9e
- https://git.kernel.org/stable/c/51dcf459845fd28f5a0d83d408a379b274ec5cc5
- https://git.kernel.org/stable/c/5b2aec77f92265a9028c5f632bdd9af5b57ec3a3
- https://git.kernel.org/stable/c/69c4e241ff13545d410a8b2a688c932182a858bf
- https://git.kernel.org/stable/c/ca1a47cd3f5f4c46ca188b1c9a27af87d1ab2216



