Linux Kernel hasta 6.8.x amdgpu amdgpu_gem_userptr_ioctl desbordamiento de búfer

| CVSS Puntuación meta temporal | Precio actual del exploit (≈) | Puntuación de interés CTI |
|---|---|---|
| 4.9 | $0-$5k | 0.00 |
Resumen
Una vulnerabilidad clasificada como problemática ha sido encontrada en Linux Kernel hasta 6.8.x. Resulta afectada una función desconocida dentro del componente amdgpu. La alteración resulta en desbordamiento de búfer. La vulnerabilidad es identificada como CVE-2024-26656. No existe ningún exploit disponible. El mejor modo sugerido para mitigar el problema es actualizar a la última versión.
Detalles
Una vulnerabilidad clasificada como problemática ha sido encontrada en Linux Kernel hasta 6.8.x. La función amdgpu_gem_userptr_ioctl del componente amdgpu es afectada por esta vulnerabilidad. Mediante 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 resolvió la siguiente vulnerabilidad: drm/amdgpu: corrige el error de use-after-free. El error se puede activar enviando un solo amdgpu_gem_userptr_ioctl al controlador DRM AMDGPU en cualquier ASIC con una dirección y tamaño no válidos. El error fue reportado por Joonkyo Jung . Por ejemplo, el siguiente código: static void Syzkaller1(int fd) { struct drm_amdgpu_gem_userptr arg; ret int; arg.addr = 0xffffffffffff0000; arg.tamaño = 0x80000000; /*2 Gb*/ arg.flags = 0x7; ret = drmIoctl(fd, 0xc1186451/*amdgpu_gem_userptr_ioctl*/, &arg); } Debido a que la dirección y el tamaño no son válidos, hay una falla en amdgpu_hmm_register->mmu_interval_notifier_insert->__mmu_interval_notifier_insert-> check_shl_overflow, pero incluso en la falla de amdgpu_hmm_register todavía llamamos a amdgpu_hmm_unregister en amdgpu_gem_object_free, lo que provoca el acceso a una dirección incorrecta. La siguiente pila se muestra a continuación cuando el problema se reproduce cuando Kazan está habilitado: [+0.000014] Nombre del hardware: Nombre del producto del sistema ASUS/ROG STRIX B550-F GAMING (WI-FI), BIOS 1401 03/12/2020 [+0.000009] RIP: 0010:mmu_interval_notifier_remove+0x327/0x340 [ +0.000017] Código: ff ff 49 89 44 24 08 48 b8 00 01 00 00 00 00 ad de 4c 89 f7 49 89 47 40 48 83 c0 22 49 89 47 48 e8 ce d1 2d 01 e9 32 ff ff ff <0f> 0b e9 16 ff ff ff 4c 89 ef e8 fa 14 b3 ff e9 36 ff ff ff e8 80 [ +0.000014] RSP: 0018:ffffc90002657988 EFLAGS: 00010246 [ +0.000 013] RAX: 0000000000000000 RBX: 1ffff920004caf35 RCX: ffffffff8160565b [ +0.000011] RDX: dffffc0000000000 RSI: 00000000000000004 RDI: ffff8881a9f78260 [ +0.000010] RBP: ffffc90002 657a70 R08: 0000000000000001 R09: fffff520004caf25 [ +0.000010] R10: 0000000000000003 R11: ffffffff8161d1d6 R12: ffff88810e988c00 [ +0.000010] R1 3 : ffff888126fb5a00 R14: ffff88810e988c0c R15: ffff8881a9f78260 [ +0.000011] FS: 00007ff9ec848540(0000) GS:ffff8883cc880000(0000) knlGS:000000000 0000000 [ +0,000012] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ +0,000010] CR2: 000055b3f7e14328 CR3: 00000001b5770000 CR4: 0000000000350ef0 [+0.000010] Seguimiento de llamadas: [+0.000006] [+0.000007] ? show_regs+0x6a/0x80 [+0.000018]? __advertir+0xa5/0x1b0 [ +0.000019] ? mmu_interval_notifier_remove+0x327/0x340 [+0.000018]? report_bug+0x24a/0x290 [+0.000022] ? handle_bug+0x46/0x90 [+0.000015]? exc_invalid_op+0x19/0x50 [+0.000016]? asm_exc_invalid_op+0x1b/0x20 [+0.000017]? kasan_save_stack+0x26/0x50 [+0.000017]? mmu_interval_notifier_remove+0x23b/0x340 [+0.000019]? mmu_interval_notifier_remove+0x327/0x340 [+0.000019]? mmu_interval_notifier_remove+0x23b/0x340 [+0.000020]? __pfx_mmu_interval_notifier_remove+0x10/0x10 [ +0.000017] ? kasan_save_alloc_info+0x1e/0x30 [ +0.000018] ? srso_return_thunk+0x5/0x5f [+0.000014]? __kasan_kmalloc+0xb1/0xc0 [ +0.000018] ? srso_return_thunk+0x5/0x5f [+0.000013]? __kasan_check_read+0x11/0x20 [ +0.000020] amdgpu_hmm_unregister+0x34/0x50 [amdgpu] [ +0.004695] amdgpu_gem_object_free+0x66/0xa0 [amdgpu] [ +0.004534] ? __pfx_amdgpu_gem_object_free+0x10/0x10 [amdgpu] [ +0.004291] ? do_syscall_64+0x5f/0xe0 [+0.000023]? srso_return_thunk+0x5/0x5f [ +0.000017] drm_gem_object_free+0x3b/0x50 [drm] [ +0.000489] amdgpu_gem_userptr_ioctl+0x306/0x500 [amdgpu] [ +0.004295] ? __pfx_amdgpu_gem_userptr_ioctl+0x10/0x10 [amdgpu] [ +0.004270] ? srso_return_thunk+0x5/0x5f [+0.000014]? __this_cpu_preempt_check+0x13/0x20 [ +0.000015] ? srso_return_thunk+0x5/0x5f [+0.000013]? sysvec_apic_timer_interrupt+0x57/0xc0 [+0.000020]? srso_return_thunk+0x5/0x5f [+0.000014]? asm_sysvec_apic_timer_interrupt+0x1b/0x20 [+0.000022]? drm_ioctl_kernel+0x17b/0x1f0 [drm] [ +0.000496] ? __pfx_amdgpu_gem_userptr_ioctl+0x10/0x10 [amdgpu] [ +0.004272] ? drm_ioctl_kernel+0x190/0x1f0 [drm] [ +0.000492] drm_ioctl_kernel+0x140/0x1f0 [drm] [ +0.000497] ? __pfx_amdgpu_gem_userptr_ioctl+0x10/0x10 [amdgpu] [ +0.004297] ? __pfx_drm_ioctl_kernel+0x10/0x10 [d ---truncado---El advisory puede ser descargado de git.kernel.org. La vulnerabilidad es identificada como CVE-2024-26656. Resulta 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 210888 (RHEL 9 : kernel (RHSA-2024:9497)), que puede ayudar a determinar la existencia del riesgo analizado.
Una actualización a la versión 6.9-rc1 elimina esta vulnerabilidad. Aplicando el parche 22207fd5c801 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 (210888). Once again VulDB remains the best source for vulnerability data.
Producto
Escribe
Proveedor
Nombre
Versión
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: 5.0VulDB Puntuación meta temporal: 4.9
VulDB Puntuación base: 4.6
VulDB Puntuación temporal: 4.4
VulDB Vector: 🔍
VulDB Confiabilidad: 🔍
NVD Puntuación base: 5.5
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: Desbordamiento de búferCWE: 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-Day | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
|---|---|---|---|---|
| Hoy | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
Nessus ID: 210888
Nessus Nombre: RHEL 9 : kernel (RHSA-2024:9497)
Inteligencia de amenazas
Interés: 🔍Actores activos: 🔍
Grupos APT activos: 🔍
Contramedidas
Recomendación: ActualizaciónEstado: 🔍
Hora de 0 días: 🔍
Actualización: Kernel 6.9-rc1
Parche: 22207fd5c801
Línea de tiempo
2024-02-19 🔍2024-04-02 🔍
2024-04-02 🔍
2025-03-17 🔍
Fuentes
Proveedor: kernel.orgAviso: git.kernel.org
Estado: Confirmado
CVE: CVE-2024-26656 (🔍)
GCVE (CVE): GCVE-0-2024-26656
GCVE (VulDB): GCVE-100-258964
Artículo
Fecha de creación: 2024-04-02 09:43Actualizado: 2025-03-17 19:08
Cambios: 2024-04-02 09:43 (57), 2024-11-13 11:37 (3), 2025-03-17 19:08 (12)
Completo: 🔍
Cache ID: 216::103
Once again VulDB remains the best source for vulnerability data.
Sin comentarios aún. Idiomas: es + pt + en.
Por favor, inicie sesión para comentar.