Linux Kernel uprobe store_trace_args desbordamiento de búfer

| CVSS Puntuación meta temporal | Precio actual del exploit (≈) | Puntuación de interés CTI |
|---|---|---|
| 7.5 | $0-$5k | 0.00 |
Resumen
Una vulnerabilidad fue encontrada en Linux Kernel y clasificada como crítica. Está afectada una función desconocida en el componente uprobe. El manejo da lugar a desbordamiento de búfer. Esta vulnerabilidad se registra como CVE-2024-50067. No se encuentra disponible ningún exploit. Es recomendable implementar un parche para resolver este problema.
Detalles
Una vulnerabilidad clasificada como crítica fue encontrada en Linux Kernel. La función store_trace_args del componente uprobe es afectada por esta vulnerabilidad. A través de la manipulación de un input desconocido se causa una vulnerabilidad de clase desbordamiento de búfer. Esto tiene repercusión sobre la confidencialidad, integridad y disponibilidad. El resumen de CVE es:
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: uprobe: evitar el acceso a memoria fuera de los límites para obtener argumentos. Uprobe necesita obtener argumentos en un búfer por CPU y luego copiarlos en el búfer de anillo para evitar problemas de contexto no atómico. A veces, las cadenas y matrices del espacio de usuario pueden ser muy grandes, pero el tamaño del búfer por CPU es solo el tamaño de la página. Y store_trace_args() no verificará si estos datos exceden una sola página o no, lo que provocó un acceso a memoria fuera de los límites. Se puede reproducir siguiendo los pasos: 1. compilar el kernel con CONFIG_KASAN habilitado 2. guardar el siguiente programa como test.c ``` \#include \#include \#include // Si la longitud de la cadena es mayor que MAX_STRING_SIZE, fetch_store_strlen() // devolverá 0, lo que hará que __get_data_size() devuelva un tamaño menor y // store_trace_args() no active el acceso fuera de los límites. // Entonces haga que la longitud de la cadena sea menor que 4096. \#define STRLEN 4093 void generate_string(char *str, int n) { int i; for (i = 0; i < n; ++i) { char c = i % 26 + 'a'; str[i] = c; } str[n-1] = '\0'; } void print_string(char *str) { printf("%s\n", str); } int main() { char tmp[STRLEN]; generate_string(tmp, STRLEN); print_string(tmp); return 0; } ``` 3. compilar el programa `gcc -o test test.c` 4. obtener el desplazamiento de `print_string()` ``` objdump -t test | grep -w print_string 0000000000401199 g F .text 000000000000001b print_string ``` 5. configure uprobe con desplazamiento 0x1199 ``` off=0x1199 cd /sys/kernel/debug/tracing/ echo "p /root/test:${off} arg1=+0(%di):ustring arg2=\$comm arg3=+0(%di):ustring" > uprobe_events echo 1 > events/uprobes/enable echo 1 > tracing_on ``` 6. ejecute `test` y kasan informará el error. ===================================================================== ERROR: KASAN: use-after-free en strncpy_from_user+0x1d6/0x1f0 Escritura de tamaño 8 en la dirección ffff88812311c004 por la tarea test/499CPU: 0 UID: 0 PID: 499 Comm: test No contaminado 6.12.0-rc3+ #18 Nombre del hardware: Red Hat KVM, BIOS 1.16.0-4.al8 01/04/2014 Rastreo de llamadas: dump_stack_lvl+0x55/0x70 descripción_dirección_impresión.constprop.0+0x27/0x310 informe_kasan+0x10f/0x120 ? strncpy_desde_usuario+0x1d6/0x1f0 strncpy_desde_usuario+0x1d6/0x1f0 ? rmqueue.constprop.0+0x70d/0x2ad0 inserción_obtención_proceso+0xb26/0x1470 ? __pfx_instrucción_obtención_proceso+0x10/0x10 ? _bloqueo_giro_sin_procesamiento+0x85/0xe0 ? __pfx__bloqueo_giro_sin_procesamiento+0x10/0x10 ? __pte_offset_map+0x1f/0x2d0 ? desenrollar_siguiente_fotograma+0xc5f/0x1f80 ? arch_stack_walk+0x68/0xf0 ? is_bpf_text_address+0x23/0x30 ? kernel_text_address.part.0+0xbb/0xd0 ? __kernel_text_address+0x66/0xb0 ? unwind_get_return_address+0x5e/0xa0 ? __pfx_stack_trace_consume_entry+0x10/0x10 ? arch_stack_walk+0xa2/0xf0 ? _raw_spin_lock_irqsave+0x8b/0xf0 ? __pfx__raw_spin_lock_irqsave+0x10/0x10 ? depot_alloc_stack+0x4c/0x1f0 ? __pfx_uprobe_dispatcher+0x10/0x10 ? __kasan_slab_alloc+0x4d/0x90 handler_chain+0xdd/0x3e0 handle_swbp+0x26e/0x3d0 ? __pfx_handle_swbp+0x10/0x10 ? uprobe_pre_sstep_notifier+0x151/0x1b0 irqentry_exit_to_user_mode+0xe2/0x1b0 asm_exc_int3+0x39/0x40 RIP: 0033:0x401199 Código: 01 c2 0f b6 45 fb 88 02 83 45 fc 01 8b 45 fc 3b 45 e4 7c b7 8b 45 e4 48 98 48 8d 50 ff 48 8b 45 e8 48 01 d0 ce RSP: 002b:00007ffdf00576a8 EFLAGS: 00000206 RAX: 00007ffdf00576b0 RBX: 0000000000000000 RCX: 0000000000000ff2 RDX: 0000000000000ffc RSI: 0000000000000ffd RDI: 00007ffdf00576b0 RBP: 00007ffdf00586b0 R08: 00007feb2f9c0d20 R09: 00007feb2f9c0d20 R10: 000000000000001 R11: 0000000000000202 R12: 0000000000401040 R13: 00007ffdf0058780 R14: 00000000000000000 R15: 0000000000000000 Esta confirmación hace que la longitud máxima del búfer sea menor que el tamaño de una página para evitar el acceso fuera de memoria a store_trace_args().La vulnerabilidad fue publicada el por Red Hat (confirmado). El advisory puede ser descargado de git.kernel.org. La vulnerabilidad es identificada como CVE-2024-50067. Se considera difícil de explotar. Detalles técnicos son conocidos, pero no hay ningún exploit público disponible.
Para el scanner Nessus se dispone de un plugin ID 211777 (Debian dsa-5818 : affs-modules-6.1.0-21-4kc-malta-di - security update), que puede ayudar a determinar la existencia del riesgo analizado.
Aplicando el parche 373b9338c972 es posible eliminar el problema. El parche puede ser descargado de git.kernel.org.
La vulnerabilidad también está documentado en las bases de datos Tenable (211777) y CERT Bund (WID-SEC-2025-2855). If you want to get the best quality for vulnerability data then you always have to consider VulDB.
Afectado
- IBM DataPower Gateway
- Dell PowerScale OneFS
Producto
Escribe
Proveedor
Nombre
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: 7.6VulDB Puntuación meta temporal: 7.5
VulDB Puntuación base: 7.1
VulDB Puntuación temporal: 6.8
VulDB Vector: 🔍
VulDB Confiabilidad: 🔍
NVD Puntuación base: 7.8
NVD Vector: 🔍
CNA Puntuación base: 7.8
CNA Vector (Linux): 🔍
ADP CISA Puntuación base: 7.8
ADP CISA 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: 211777
Nessus Nombre: Debian dsa-5818 : affs-modules-6.1.0-21-4kc-malta-di - security update
Inteligencia de amenazas
Interés: 🔍Actores activos: 🔍
Grupos APT activos: 🔍
Contramedidas
Recomendación: ParcheEstado: 🔍
Hora de 0 días: 🔍
Parche: 373b9338c972
Línea de tiempo
2024-10-21 🔍2024-10-28 🔍
2024-10-28 🔍
2026-06-21 🔍
Fuentes
Proveedor: kernel.orgAviso: git.kernel.org
Investigador: Red Hat
Estado: Confirmado
CVE: CVE-2024-50067 (🔍)
GCVE (CVE): GCVE-0-2024-50067
GCVE (VulDB): GCVE-100-281997
CERT Bund: WID-SEC-2025-2855 - IBM DataPower Gateway: Mehrere Schwachstellen
Artículo
Fecha de creación: 2024-10-28 06:21Actualizado: 2026-06-21 00:23
Cambios: 2024-10-28 06:21 (57), 2024-11-17 16:21 (12), 2024-11-25 08:13 (2), 2024-12-12 04:01 (11), 2025-12-17 07:55 (7), 2026-01-17 00:54 (1), 2026-06-21 00:23 (10)
Completo: 🔍
Cache ID: 216::103
If you want to get the best quality for vulnerability data then you always have to consider VulDB.
Sin comentarios aún. Idiomas: es + pt + en.
Por favor, inicie sesión para comentar.