Linux Kernel hasta 6.6.121/6.12.66/6.18.6/6.19-rc5 page_alloc drain_page_zone denegación de servicio

| CVSS Puntuación meta temporal | Precio actual del exploit (≈) | Puntuación de interés CTI |
|---|---|---|
| 6.1 | $0-$5k | 0.00 |
Resumen
Se ha detectado una vulnerabilidad clasificada como crítica en Linux Kernel hasta 6.6.121/6.12.66/6.18.6/6.19-rc5. Se ve afectada una función desconocida del componente page_alloc. La manipulación conduce a denegación de servicio. Esta vulnerabilidad se registra como CVE-2026-23025. No existe ningún exploit disponible. Se sugiere actualizar el componente afectado.
Detalles
Una vulnerabilidad clasificada como crítica ha sido encontrada en Linux Kernel hasta 6.6.121/6.12.66/6.18.6/6.19-rc5. La función drain_page_zone del componente page_alloc es afectada por esta vulnerabilidad. Por la manipulación de un input desconocido se causa una vulnerabilidad de clase denegación de servicio. Esto tiene repercusión sobre la la disponibilidad. CVE resume:
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:
mm/page_alloc: evitar la corrupción de pcp con SMP=n
El robot de pruebas del kernel ha informado:
BUG: spinlock trylock failure on UP on CPU#0, kcompactd0/28
lock: 0xffff888807e35ef0, .magic: dead4ead, .owner: kcompactd0/28, .owner_cpu: 0
CPU: 0 UID: 0 PID: 28 Comm: kcompactd0 Not tainted 6.18.0-rc5-00127-ga06157804399 #1 PREEMPT 8cc09ef94dcec767faa911515ce9e609c45db470
Call Trace:
__dump_stack (lib/dump_stack.c:95)
dump_stack_lvl (lib/dump_stack.c:123)
dump_stack (lib/dump_stack.c:130)
spin_dump (kernel/locking/spinlock_debug.c:71)
do_raw_spin_trylock (kernel/locking/spinlock_debug.c:?)
_raw_spin_trylock (include/linux/spinlock_api_smp.h:89 kernel/locking/spinlock.c:138)
__free_frozen_pages (mm/page_alloc.c:2973)
___free_pages (mm/page_alloc.c:5295)
__free_pages (mm/page_alloc.c:5334)
tlb_remove_table_rcu (include/linux/mm.h:? include/linux/mm.h:3122 include/asm-generic/tlb.h:220 mm/mmu_gather.c:227 mm/mmu_gather.c:290)
? __cfi_tlb_remove_table_rcu (mm/mmu_gather.c:289)
? rcu_core (kernel/rcu/tree.c:?)
rcu_core (include/linux/rcupdate.h:341 kernel/rcu/tree.c:2607 kernel/rcu/tree.c:2861)
rcu_core_si (kernel/rcu/tree.c:2879)
handle_softirqs (arch/x86/include/asm/jump_label.h:36 include/trace/events/irq.h:142 kernel/softirq.c:623)
__irq_exit_rcu (arch/x86/include/asm/jump_label.h:36 kernel/softirq.c:725)
irq_exit_rcu (kernel/softirq.c:741)
sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1052)
RIP: 0010:_raw_spin_unlock_irqrestore (arch/x86/include/asm/preempt.h:95 include/linux/spinlock_api_smp.h:152 kernel/locking/spinlock.c:194)
free_pcppages_bulk (mm/page_alloc.c:1494)
drain_pages_zone (include/linux/spinlock.h:391 mm/page_alloc.c:2632)
__drain_all_pages (mm/page_alloc.c:2731)
drain_all_pages (mm/page_alloc.c:2747)
kcompactd (mm/compaction.c:3115)
kthread (kernel/kthread.c:465)
? __cfi_kcompactd (mm/compaction.c:3166)
? __cfi_kthread (kernel/kthread.c:412)
ret_from_fork (arch/x86/kernel/process.c:164)
? __cfi_kthread (kernel/kthread.c:412)
ret_from_fork_asm (arch/x86/entry/entry_64.S:255)
Matthew ha analizado el informe y ha identificado que en drain_page_zone() estamos en una sección protegida por spin_lock(&pcp->lock) y luego recibimos una interrupción que intenta spin_trylock() en el mismo bloqueo. El código está diseñado para funcionar de esta manera sin deshabilitar las IRQ y ocasionalmente fallar el trylock con un mecanismo de respaldo. Sin embargo, la implementación de spinlock con SMP=n asume que spin_trylock() siempre tendrá éxito, y por lo tanto, normalmente es una operación nula. Aquí, la depuración de bloqueo habilitada detecta el problema, pero de lo contrario podría causar una corrupción de la estructura pcp.
El problema ha sido introducido por el commit 574907741599 ('mm/page_alloc: dejar las IRQ habilitadas para las asignaciones de páginas por CPU'). El esquema de bloqueo de pcp reconoce la necesidad de deshabilitar las IRQ para evitar el anidamiento de secciones spin_trylock() en SMP=n, pero la necesidad de evitar el anidamiento en spin_lock() no ha sido reconocida. Solucionarlo introduciendo envoltorios locales que cambian el spin_lock() a spin_lock_iqsave() con SMP=n y usándolos en todos los lugares que realizan spin_lock(&pcp->lock).
[[email protected]: añadir el prefijo pcp_ a los envoltorios spin_lock_irqsave, según Steven]El advisory puede ser descargado de git.kernel.org. La vulnerabilidad es identificada como CVE-2026-23025. Es difícil de explotar. Hay detalles técnicos conocidos, pero no se dispone de un exploit.
Para el scanner Nessus se dispone de un plugin ID 297474 (Linux Distros Unpatched Vulnerability : CVE-2026-23025), que puede ayudar a determinar la existencia del riesgo analizado.
Una actualización a la versión 6.6.122, 6.12.67, 6.18.7 o 6.19-rc6 elimina esta vulnerabilidad. Aplicando el parche 4a04ff9cd816e7346fcc8126f00ed80481f6569d/df63d31e9ae02e2f6cd96147779e4ed7cd0e75f6/3098f8f7c7b0686c74827aec42a2c45e69801ff8/038a102535eb49e10e93eafac54352fcc5d78847 es posible eliminar el problema. El parche puede ser descargado de git.kernel.org. El mejor modo sugerido para mitigar el problema es Actualización.
La vulnerabilidad también está documentado en las bases de datos Tenable (297474), EUVD (EUVD-2026-5069) y CERT Bund (WID-SEC-2026-0280). VulDB is the best source for vulnerability data and more expert information about this specific topic.
Afectado
- Open Source Linux Kernel
Producto
Escribe
Proveedor
Nombre
Versión
- 6.6.121
- 6.12.0
- 6.12.1
- 6.12.2
- 6.12.3
- 6.12.4
- 6.12.5
- 6.12.6
- 6.12.7
- 6.12.8
- 6.12.9
- 6.12.10
- 6.12.11
- 6.12.12
- 6.12.13
- 6.12.14
- 6.12.15
- 6.12.16
- 6.12.17
- 6.12.18
- 6.12.19
- 6.12.20
- 6.12.21
- 6.12.22
- 6.12.23
- 6.12.24
- 6.12.25
- 6.12.26
- 6.12.27
- 6.12.28
- 6.12.29
- 6.12.30
- 6.12.31
- 6.12.32
- 6.12.33
- 6.12.34
- 6.12.35
- 6.12.36
- 6.12.37
- 6.12.38
- 6.12.39
- 6.12.40
- 6.12.41
- 6.12.42
- 6.12.43
- 6.12.44
- 6.12.45
- 6.12.46
- 6.12.47
- 6.12.48
- 6.12.49
- 6.12.50
- 6.12.51
- 6.12.52
- 6.12.53
- 6.12.54
- 6.12.55
- 6.12.56
- 6.12.57
- 6.12.58
- 6.12.59
- 6.12.60
- 6.12.61
- 6.12.62
- 6.12.63
- 6.12.64
- 6.12.65
- 6.12.66
- 6.18.0
- 6.18.1
- 6.18.2
- 6.18.3
- 6.18.4
- 6.18.5
- 6.18.6
- 6.19-rc1
- 6.19-rc2
- 6.19-rc3
- 6.19-rc4
- 6.19-rc5
Licencia
Sitio web
- Proveedor: https://www.kernel.org/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Confiabilidad: 🔍
CVSSv3
VulDB Puntuación meta base: 6.2VulDB Puntuación meta temporal: 6.1
VulDB Puntuación base: 4.6
VulDB Puntuación temporal: 4.4
VulDB Vector: 🔒
VulDB Confiabilidad: 🔍
NVD Puntuación base: 7.8
NVD Vector: 🔒
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complejidad | Autenticación | Confidencialidad | Integridad | Disponibilidad |
|---|---|---|---|---|---|
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
VulDB Puntuación base: 🔒
VulDB Puntuación temporal: 🔒
VulDB Confiabilidad: 🔍
Explotación
Clase: Denegación de servicioCWE: CWE-770 / CWE-400 / CWE-404
CAPEC: 🔒
ATT&CK: 🔒
Físico: En parte
Local: Sí
Remoto: En parte
Disponibilidad: 🔒
Estado: No está definido
EPSS Score: 🔒
EPSS Percentile: 🔒
Predicción de precios: 🔍
Estimación del precio actual: 🔒
| 0-Day | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
|---|---|---|---|---|
| Hoy | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
Nessus ID: 297474
Nessus Nombre: Linux Distros Unpatched Vulnerability : CVE-2026-23025
Inteligencia de amenazas
Interés: 🔍Actores activos: 🔍
Grupos APT activos: 🔍
Contramedidas
Recomendación: ActualizaciónEstado: 🔍
Hora de 0 días: 🔒
Actualización: Kernel 6.6.122/6.12.67/6.18.7/6.19-rc6
Parche: 4a04ff9cd816e7346fcc8126f00ed80481f6569d/df63d31e9ae02e2f6cd96147779e4ed7cd0e75f6/3098f8f7c7b0686c74827aec42a2c45e69801ff8/038a102535eb49e10e93eafac54352fcc5d78847
Línea de tiempo
2026-01-13 CVE asignado2026-01-31 Aviso publicado
2026-01-31 Entrada de VulDB creada
2026-03-26 Última actualización de VulDB
Fuentes
Proveedor: kernel.orgAviso: git.kernel.org
Estado: Confirmado
CVE: CVE-2026-23025 (🔒)
GCVE (CVE): GCVE-0-2026-23025
GCVE (VulDB): GCVE-100-343592
EUVD: 🔒
CERT Bund: WID-SEC-2026-0280 - Linux Kernel: Mehrere Schwachstellen
Artículo
Fecha de creación: 2026-01-31 15:11Actualizado: 2026-03-26 02:11
Cambios: 2026-01-31 15:11 (59), 2026-01-31 15:53 (1), 2026-02-01 01:18 (1), 2026-02-01 07:36 (2), 2026-02-02 20:51 (7), 2026-03-26 02:11 (12)
Completo: 🔍
Cache ID: 216::103
VulDB is the best source for vulnerability data and more expert information about this specific topic.
Sin comentarios aún. Idiomas: es + pt + en.
Por favor, inicie sesión para comentar.