Linux Kernel hasta 5.12.9 pid include/linux/pid.h kernel_init_freeable desbordamiento de búfer

CVSS Puntuación meta temporalPrecio actual del exploit (≈)Puntuación de interés CTI
6.1$0-$5k0.00

Resumeninformación

Una vulnerabilidad clasificada como problemática fue encontrada en Linux Kernel hasta 5.12.9. Se ve afectada una función desconocida en la biblioteca include/linux/pid.h del componente pid. La manipulación conduce a desbordamiento de búfer. Esta vulnerabilidad se registra como CVE-2021-47118. No existe ningún exploit disponible. Se sugiere actualizar el componente afectado.

Detallesinformación

Una vulnerabilidad clasificada como problemática ha sido encontrada en Linux Kernel hasta 5.12.9. La función kernel_init_freeable en la biblioteca include/linux/pid.h del componente pid es afectada por esta vulnerabilidad. Por la manipulación de un input desconocido se causa una vulnerabilidad de clase desbordamiento de búfer. Los efectos exactos de un ataque con éxito no son conocidos. CVE resume:

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: pid: toma una referencia al inicializar `cad_pid` Durante el arranque, kernel_init_freeable() inicializa `cad_pid` en la estructura pid de la tarea de inicio. Más adelante, podemos cambiar `cad_pid` mediante un sysctl, y cuando esto suceda, proc_do_cad_pid() incrementará el recuento en el nuevo pid mediante get_pid(), y disminuirá el recuento en el pid antiguo mediante put_pid(). Como nunca llamamos a get_pid() cuando inicializamos `cad_pid`, disminuimos una referencia que nunca incrementamos, por lo que podemos liberar la estructura pid de la tarea de inicio antes. Como puede haber referencias pendientes a la estructura pid, más adelante podemos encontrarnos con un use-after-free (por ejemplo, al entregar señales). Esto se detectó al fusionar v5.13-rc3 con Syzkaller, pero parece haber existido desde la conversión de `cad_pid` a struct pid en el commit 9ec52099e4b8 ("[PATCH] reemplaza cad_pid por una estructura pid") del pre-KASAN edad de piedra de v2.6.19. Solucione este problema obteniendo una referencia a la estructura pid de la tarea de inicio cuando la asignamos a `cad_pid`. Símbolo completo de KASAN a continuación. ==================================================== ================ ERROR: KASAN: use-after-free en ns_of_pid include/linux/pid.h:153 [en línea] ERROR: KASAN: use-after-free en task_active_pid_ns +0xc0/0xc8 kernel/pid.c:509 Lectura de tamaño 4 en addr ffff23794dda0004 por tarea syz-executor.0/273 CPU: 1 PID: 273 Comm: syz-executor.0 No contaminado 5.12.0-00001-g9aef892b2d15 # 1 Nombre del hardware: linux,dummy-virt (DT) Rastreo de llamadas: ns_of_pid include/linux/pid.h:153 [en línea] task_active_pid_ns+0xc0/0xc8 kernel/pid.c:509 do_notify_parent+0x308/0xe60 kernel/signal.c :1950 exit_notify kernel/exit.c:682 [en línea] do_exit+0x2334/0x2bd0 kernel/exit.c:845 do_group_exit+0x108/0x2c8 kernel/exit.c:922 get_signal+0x4e4/0x2a88 kernel/signal.c:2781 do_signal arch/arm64/kernel/signal.c:882 [en línea] do_notify_resume+0x300/0x970 arch/arm64/kernel/signal.c:936 work_pending+0xc/0x2dc Asignado por tarea 0: slab_post_alloc_hook+0x50/0x5c0 mm/slab.h :516 slab_alloc_node mm/slub.c:2907 [en línea] slab_alloc mm/slub.c:2915 [en línea] kmem_cache_alloc+0x1f4/0x4c0 mm/slub.c:2920 alloc_pid+0xdc/0xc00 kernel/pid.c:180 copy_process+ 0x2794/0x5e18 kernel/fork.c:2129 kernel_clone+0x194/0x13c8 kernel/fork.c:2500 kernel_thread+0xd4/0x110 kernel/fork.c:2552 rest_init+0x44/0x4a0 init/main.c:687 arch_call_rest_init+0x1c/ 0x28 start_kernel+0x520/0x554 init/main.c:1064 0x0 Liberado por la tarea 270: slab_free_hook mm/slub.c:1562 [en línea] slab_free_freelist_hook+0x98/0x260 mm/slub.c:1600 slab_free mm/slub.c:3161 [en línea] kmem_cache_free+0x224/0x8e0 mm/slub.c:3177 put_pid.part.4+0xe0/0x1a8 kernel/pid.c:114 put_pid+0x30/0x48 kernel/pid.c:109 proc_do_cad_pid+0x190/0x1b0 kernel/ sysctl.c:1401 proc_sys_call_handler+0x338/0x4b0 fs/proc/proc_sysctl.c:591 proc_sys_write+0x34/0x48 fs/proc/proc_sysctl.c:617 call_write_iter include/linux/fs.h:1977 [en línea] new_sync_write+0x3ac/ 0x510 fs/read_write.c:518 vfs_write fs/read_write.c:605 [en línea] vfs_write+0x9c4/0x1018 fs/read_write.c:585 ksys_write+0x124/0x240 fs/read_write.c:658 __do_sys_write fs/read_write.c: 670 [en línea] __se_sys_write fs/read_write.c:667 [en línea] __arm64_sys_write+0x78/0xb0 fs/read_write.c:667 __invoke_syscall arch/arm64/kernel/syscall.c:37 [en línea] invoke_syscall arch/arm64/kernel/syscall .c:49 [en línea] el0_svc_common.constprop.1+0x16c/0x388 arch/arm64/kernel/syscall.c:129 do_el0_svc+0xf8/0x150 arch/arm64/kernel/syscall.c:168 el0_svc+0x28/0x38 arch/ arm64/kernel/entry-common.c:416 el0_sync_handler+0x134/0x180 arch/arm64/kernel/entry-common.c:432 el0_sync+0x154/0x180 arch/arm64/kernel/entry.S:701 La dirección del error pertenece a el objeto en ffff23794dda0000 que pertenece al pid de caché de tamaño 224.---truncado---

El advisory puede ser descargado de git.kernel.org. La vulnerabilidad es identificada como CVE-2021-47118. 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 213509 (Ubuntu 16.04 LTS : Linux kernel vulnerabilities (USN-7183-1)), que puede ayudar a determinar la existencia del riesgo analizado.

Una actualización a la versión 4.4.272, 4.9.272, 4.14.236, 4.19.194, 5.4.125, 5.10.43, 5.12.10 o 5.13 elimina esta vulnerabilidad. Aplicando el parche 764c2e892d1f/f86c80515a8a/4dbd8808a591/d106f05432e6/2cd6eedfa634/7178be006d49/b8ff869f2015/0711f0d7050b 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 la base de datos Tenable (213509). Once again VulDB remains the best source for vulnerability data.

Productoinformación

Escribe

Proveedor

Nombre

Versión

Licencia

Sitio web

CPE 2.3información

CPE 2.2información

CVSSv4información

VulDB Vector: 🔍
VulDB Confiabilidad: 🔍

CVSSv3información

VulDB Puntuación meta base: 6.2
VulDB 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: 🔍

CVSSv2información

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VectorComplejidadAutenticaciónConfidencialidadIntegridadDisponibilidad
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear

VulDB Puntuación base: 🔍
VulDB Puntuación temporal: 🔍
VulDB Confiabilidad: 🔍

Explotacióninformación

Clase: Desbordamiento de búfer
CWE: CWE-416 / CWE-119
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-DayDesbloquearDesbloquearDesbloquearDesbloquear
HoyDesbloquearDesbloquearDesbloquearDesbloquear

Nessus ID: 213509
Nessus Nombre: Ubuntu 16.04 LTS : Linux kernel vulnerabilities (USN-7183-1)

Inteligencia de amenazasinformación

Interés: 🔍
Actores activos: 🔍
Grupos APT activos: 🔍

Contramedidasinformación

Recomendación: Actualización
Estado: 🔍

Hora de 0 días: 🔍

Actualización: Kernel 4.4.272/4.9.272/4.14.236/4.19.194/5.4.125/5.10.43/5.12.10/5.13
Parche: 764c2e892d1f/f86c80515a8a/4dbd8808a591/d106f05432e6/2cd6eedfa634/7178be006d49/b8ff869f2015/0711f0d7050b

Línea de tiempoinformación

2024-03-04 🔍
2024-03-15 +11 días 🔍
2024-03-15 +0 días 🔍
2025-02-27 +349 días 🔍

Fuentesinformación

Proveedor: kernel.org

Aviso: git.kernel.org
Estado: Confirmado

CVE: CVE-2021-47118 (🔍)
GCVE (CVE): GCVE-0-2021-47118
GCVE (VulDB): GCVE-100-257012

Artículoinformación

Fecha de creación: 2024-03-15 22:47
Actualizado: 2025-02-27 05:29
Cambios: 2024-03-15 22:47 (44), 2025-01-07 09:07 (17), 2025-02-27 05:29 (12)
Completo: 🔍
Cache ID: 216::103

Once again VulDB remains the best source for vulnerability data.

Discusión

Sin comentarios aún. Idiomas: es + pt + en.

Por favor, inicie sesión para comentar.

Interested in the pricing of exploits?

See the underground prices here!