Boletín de vulnerabilidades
Vulnerabilidades con productos recientemente documentados:
No hay vulnerabilidades nuevas para los productos a los que está suscrito.
Otras vulnerabilidades de los productos a los que usted está suscrito, y cuya información ha sido actualizada recientemente:
-
Vulnerabilidad en kernel de Linux (CVE-2025-38027)
Severidad: ALTA
Fecha de publicación: 18/06/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: regulator: max20086: corrige acceso de memoria no válido max20086_parse_regulators_dt() llama a of_regulator_match() utilizando una matriz de struct of_regulator_match asignada en la pila para el argumento matches. of_regulator_match() llama a devm_of_regulator_put_matches(), que llama a devres_alloc() para asignar un struct devm_of_regulator_matches que se desasignará utilizando devm_of_regulator_put_matches(). struct devm_of_regulator_matches se rellena con la matriz matches asignada a la pila. Si el dispositivo no realiza el sondeo, se llamará a devm_of_regulator_put_matches() e intentará llamar a of_node_put() en ese puntero de pila, lo que generará las siguientes entradas dmesg: max20086 6-0028: Failed to read DEVICE_ID reg: -121 kobject: '\xc0$\xa5\x03' (000000002cebcb7a): no se ha inicializado, pero se está llamando a kobject_put(). Seguido de un seguimiento de la pila que coincide con el flujo de llamada descrito anteriormente. Cambie a la asignación de la matriz de coincidencias mediante devm_kcalloc() para evitar acceder al puntero de pila mucho después de que esté fuera del alcance. Esto también tiene la ventaja de permitir que varios max20086 realicen el sondeo sin sobrescribir los datos almacenados dentro del global of_regulator_match.
-
Vulnerabilidad en kernel de Linux (CVE-2025-38084)
Severidad: MEDIA
Fecha de publicación: 28/06/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: mm/hugetlb: dejar de compartir tablas de páginas durante la división de VMA, no antes. Actualmente, __split_vma() activa la descompartición de la tabla de páginas hugetlb a través de vm_ops->may_split(). Esto sucede antes de que se tomen los bloqueos de VMA y rmap, lo cual es demasiado pronto, ya que permite que las fallas de página bloqueadas por VMA en nuestro proceso y los recorridos rmap de otros procesos provoquen que las tablas de páginas se compartan de nuevo antes de que realmente realicemos la división. Corríjalo llamando explícitamente a la lógica de descompartir hugetlb desde __split_vma() en el mismo lugar donde también ocurre la división de THP. En ese punto, tanto el VMA como los rmap están bloqueados contra escritura. Un detalle molesto es que ahora podemos llamar al asistente hugetlb_unshare_pmds() desde dos contextos de bloqueo diferentes: 1. desde hugetlb_split(), que contiene: - bloqueo mmap (exclusivamente) - bloqueo VMA - bloqueo rmap de archivo (exclusivamente) 2. hugetlb_unshare_all_pmds(), que creo que está diseñado para poder llamarnos con solo el bloqueo mmap mantenido (en modo compartido), pero actualmente solo se ejecuta mientras se mantiene el bloqueo mmap (exclusivamente) y el bloqueo VMA. Nota de retroportación: Este commit corrige una protección contra la exposición a riesgos que se introdujo en el commit b30c14cd6102 ("hugetlb: dejar de compartir algunos PMD al dividir VMA"); es commit afirmaba corregir un problema introducido en la versión 5.13, pero en realidad también debería retroceder. [jannh@google.com: v2]
-
Vulnerabilidad en kernel de Linux (CVE-2025-38085)
Severidad: MEDIA
Fecha de publicación: 28/06/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: mm/hugetlb: corrección de huge_pmd_unshare() frente a la competencia GUP-fast. huge_pmd_unshare() elimina una referencia en una tabla de páginas que podría haber sido compartida previamente entre procesos, lo que podría convertirla en una tabla de páginas normal utilizada por otro proceso en la que posteriormente se podrían instalar VMAs no relacionadas. Si esto ocurre durante una ejecución simultánea de gup_fast(), gup_fast() podría terminar recorriendo las tablas de páginas de otro proceso. Si bien no veo ninguna forma en que esto provoque inmediatamente una corrupción de memoria en el kernel, es realmente extraño e inesperado. Corríjalo con una IPI de difusión explícita a través de tlb_remove_table_sync_one(), tal como hacemos en khugepaged al eliminar tablas de páginas durante un colapso de THP.
-
Vulnerabilidad en kernel de Linux (CVE-2025-38142)
Severidad: MEDIA
Fecha de publicación: 03/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: hwmon: (asus-ec-sensors) comprobar el índice del sensor en read_string(). Evita un posible acceso no válido a memoria cuando no se encuentra el sensor solicitado. find_ec_sensor_index() puede devolver un valor negativo (p. ej., -ENOENT), pero su resultado se utilizó sin comprobarlo, lo que podría provocar un comportamiento indefinido al pasarlo a get_sensor_info(). Se ha añadido una comprobación adecuada para devolver -EINVAL si sensor_index es negativo. Encontrado por el Centro de Verificación de Linux (linuxtesting.org) con SVACE. [groeck: Código de error devuelto por find_ec_sensor_index]
-
Vulnerabilidad en kernel de Linux (CVE-2025-38143)
Severidad: MEDIA
Fecha de publicación: 03/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: backlight: pm8941: Se ha añadido una comprobación de valores NULL en wled_configure(). Devm_kasprintf() devuelve NULL cuando falla la asignación de memoria. Actualmente, wled_configure() no realiza la comprobación en este caso, lo que provoca una desreferencia de puntero NULL. Se ha añadido una comprobación de valores NULL después de devm_kasprintf() para evitar este problema.
-
Vulnerabilidad en kernel de Linux (CVE-2025-38145)
Severidad: MEDIA
Fecha de publicación: 03/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: soc: aspeed: Se ha añadido una comprobación de valores NULL en aspeed_lpc_enable_snoop(). Devm_kasprintf() devuelve NULL cuando falla la asignación de memoria. Actualmente, aspeed_lpc_enable_snoop() no comprueba este caso, lo que provoca una desreferencia de puntero NULL. Se ha añadido una comprobación de valores NULL después de devm_kasprintf() para evitar este problema. [arj: Corrección: Etiqueta para usar el asunto de 3772e5da4454]
-
Vulnerabilidad en kernel de Linux (CVE-2025-38146)
Severidad: ALTA
Fecha de publicación: 03/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net: openvswitch: Se corrige el bucle muerto del análisis MPLS. El paquete MPLS inesperado podría no terminar en la última pila de etiquetas. Cuando hay muchas pilas, el valor del recuento de etiquetas se reinicia. Se produce un bucle muerto y, finalmente, se bloquea la CPU. seguimiento de pila: UBSAN: índice de matriz fuera de los límites en /build/linux-0Pa0xK/linux-5.15.0/net/openvswitch/flow.c:662:26 el índice -1 está fuera de rango para el tipo '__be32 [3]' CPU: 34 PID: 0 Comm: swapper/34 Kdump: cargado Tainted: G OE 5.15.0-121-generic #131-Ubuntu Nombre del hardware: Dell Inc. PowerEdge C6420/0JP9TF, BIOS 2.12.2 14/07/2021 Seguimiento de llamadas: show_stack+0x52/0x5c dump_stack_lvl+0x4a/0x63 dump_stack+0x10/0x16 ubsan_epilogue+0x9/0x36 __ubsan_handle_out_of_bounds.cold+0x44/0x49 key_extract_l3l4+0x82a/0x840 [openvswitch] ? kfree_skbmem+0x52/0xa0 key_extract+0x9c/0x2b0 [openvswitch] ovs_flow_key_extract+0x124/0x350 [openvswitch] ovs_vport_receive+0x61/0xd0 [openvswitch] ? kernel_init_free_pages.part.0+0x4a/0x70 ? get_page_from_freelist+0x353/0x540 netdev_port_receive+0xc4/0x180 [openvswitch] ? netdev_port_receive+0x180/0x180 [openvswitch] netdev_frame_hook+0x1f/0x40 [openvswitch] __netif_receive_skb_core.constprop.0+0x23a/0xf00 __netif_receive_skb_list_core+0xfa/0x240 netif_receive_skb_list_internal+0x18e/0x2a0 napi_complete_done+0x7a/0x1c0 bnxt_poll+0x155/0x1c0 [bnxt_en] __napi_poll+0x30/0x180 net_rx_action+0x126/0x280 ? bnxt_msix+0x67/0x80 [bnxt_en] handle_softirqs+0xda/0x2d0 irq_exit_rcu+0x96/0xc0 common_interrupt+0x8e/0xa0
-
Vulnerabilidad en kernel de Linux (CVE-2025-38147)
Severidad: MEDIA
Fecha de publicación: 03/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: calipso: No llamar a funciones calipso para AF_INET sk. syzkaller reportó una referencia nula en txopt_get(). [0] El desplazamiento 0x70 correspondía a struct ipv6_txoptions en struct ipv6_pinfo, por lo que struct ipv6_pinfo era nulo. Sin embargo, esto nunca ocurre con sockets IPv6, ya que inet_sk(sk)->pinet6 siempre se configura en inet6_create(), lo que significa que el socket no era IPv6. La causa principal es la falta de validación en netlbl_conn_setattr(). netlbl_conn_setattr() cambia de rama según struct sockaddr.sa_family, que se pasa desde el espacio de usuario. Sin embargo, netlbl_conn_setattr() no comprueba si la familia de direcciones coincide con el socket. El syzkaller debe haber llamado a connect() para una dirección IPv6 en un socket IPv4. Tenemos una validación correcta en tcp_v[46]_connect(), pero security_socket_connect() se llama en la etapa anterior. Copiemos la validación a netlbl_conn_setattr(). [0]: Ups: fallo de protección general, probablemente para dirección no canónica 0xdffffc000000000e: 0000 [#1] PREEMPT SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000070-0x0000000000000077] CPU: 2 UID: 0 PID: 12928 Comm: syz.9.1677 Not tainted 6.12.0 #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 RIP: 0010:txopt_get include/net/ipv6.h:390 [inline] RIP: 0010: Code: 02 00 00 49 8b ac 24 f8 02 00 00 e8 84 69 2a fd e8 ff 00 16 fd 48 8d 7d 70 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 53 02 00 00 48 8b 6d 70 48 85 ed 0f 84 ab 01 00 RSP: 0018:ffff88811b8afc48 EFLAGS: 00010212 RAX: dffffc0000000000 RBX: 1ffff11023715f8a RCX: ffffffff841ab00c RDX: 000000000000000e RSI: ffffc90007d9e000 RDI: 0000000000000070 RBP: 0000000000000000 R08: ffffed1023715f9d R09: ffffed1023715f9e R10: ffffed1023715f9d R11: 0000000000000003 R12: ffff888123075f00 R13: ffff88810245bd80 R14: ffff888113646780 R15: ffff888100578a80 FS: 00007f9019bd7640(0000) GS:ffff8882d2d00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f901b927bac CR3: 0000000104788003 CR4: 0000000000770ef0 PKRU: 80000000 Call Trace: calipso_sock_setattr+0x56/0x80 net/netlabel/netlabel_calipso.c:557 netlbl_conn_setattr+0x10c/0x280 net/netlabel/netlabel_kapi.c:1177 selinux_netlbl_socket_connect_helper+0xd3/0x1b0 security/selinux/netlabel.c:569 selinux_netlbl_socket_connect_locked security/selinux/netlabel.c:597 [inline] selinux_netlbl_socket_connect+0xb6/0x100 security/selinux/netlabel.c:615 selinux_socket_connect+0x5f/0x80 security/selinux/hooks.c:4931 security_socket_connect+0x50/0xa0 security/security.c:4598 __sys_connect_file+0xa4/0x190 net/socket.c:2067 __sys_connect+0x12c/0x170 net/socket.c:2088 __do_sys_connect net/socket.c:2098 [inline] __se_sys_connect net/socket.c:2095 [inline] __x64_sys_connect+0x73/0xb0 net/socket.c:2095 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xaa/0x1b0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f901b61a12d Code: 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f9019bd6fa8 EFLAGS: 00000246 ORIG_RAX: 000000000000002a RAX: ffffffffffffffda RBX: 00007f901b925fa0 RCX: 00007f901b61a12d RDX: 000000000000001c RSI: 0000200000000140 RDI: 0000000000000003 RBP: 00007f901b701505 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 0000000000000000 R14: 00007f901b5b62a0 R15: 00007f9019bb7000 Módulos vinculados en:
-
Vulnerabilidad en kernel de Linux (CVE-2025-38148)
Severidad: MEDIA
Fecha de publicación: 03/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net: phy: mscc: Se corrige la pérdida de memoria al usar el sellado de tiempo de un paso. Al ejecutar el sellado de tiempo de sincronización de un paso, el hardware está configurado para insertar la hora de transmisión en la trama, por lo que ya no hay razón para mantener el skb. Como en este caso, el hardware nunca generará una interrupción para indicar que la trama fue sellada, esta nunca se liberará. Se corrige liberando la trama en caso de sellado de tiempo de un paso.
-
Vulnerabilidad en kernel de Linux (CVE-2025-38151)
Severidad: MEDIA
Fecha de publicación: 03/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: RDMA/cma: Se corrige el bloqueo cuando cma_netevent_callback no puede ejecutar queue_work La confirmación citada corrigió un bloqueo cuando se llamaba a cma_netevent_callback para un cma_id mientras que el trabajo en ese id de una llamada anterior aún no había comenzado. El elemento de trabajo se reinicializó en la segunda llamada, lo que corrompió el elemento de trabajo que se encontraba actualmente en la cola de trabajos. Sin embargo, dejó un problema cuando queue_work falla (porque el elemento sigue pendiente en la cola de trabajos de una llamada anterior). En este caso, por lo tanto, cma_id_put (que se llama en el controlador de trabajos) no se llama. Esto da como resultado un bloqueo del proceso del espacio de usuario (proceso zombi). Arregle esto llamando a cma_id_put() si queue_work falla.
-
Vulnerabilidad en kernel de Linux (CVE-2025-38153)
Severidad: ALTA
Fecha de publicación: 03/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net: usb: aqc111: corrección del manejo de errores de las llamadas de lectura USBnet. Syzkaller, cortesía de syzbot, identificó un error (véase el informe [1]) en el controlador aqc111, causado por una corrección incompleta de los resultados de las llamadas de lectura USB. Este problema es bastante similar al corregido en el commit 920a9fa27e78 ("net: asix: añadir un manejo adecuado de errores de lectura USB"). Por ejemplo, usbnet_read_cmd() puede leer menos bytes que 'size', incluso si el emisor esperaba la cantidad completa, y aqc111_read_cmd() no comprobará su resultado correctamente. Como se muestra en [1], esto puede provocar que la dirección MAC en aqc111_bind() se inicialice solo parcialmente, lo que activa advertencias KMSAN. Solucione el problema verificando que el número de bytes leídos sea el esperado y no menor. [1] Informe parcial de syzbot: ERROR: KMSAN: uninit-value in is_valid_ether_addr include/linux/etherdevice.h:208 [inline] BUG: KMSAN: uninit-value in usbnet_probe+0x2e57/0x4390 drivers/net/usb/usbnet.c:1830 is_valid_ether_addr include/linux/etherdevice.h:208 [inline] usbnet_probe+0x2e57/0x4390 drivers/net/usb/usbnet.c:1830 usb_probe_interface+0xd01/0x1310 drivers/usb/core/driver.c:396 call_driver_probe drivers/base/dd.c:-1 [inline] really_probe+0x4d1/0xd90 drivers/base/dd.c:658 __driver_probe_device+0x268/0x380 drivers/base/dd.c:800 ... Uninit was stored to memory at: dev_addr_mod+0xb0/0x550 net/core/dev_addr_lists.c:582 __dev_addr_set include/linux/netdevice.h:4874 [inline] eth_hw_addr_set include/linux/etherdevice.h:325 [inline] aqc111_bind+0x35f/0x1150 drivers/net/usb/aqc111.c:717 usbnet_probe+0xbe6/0x4390 drivers/net/usb/usbnet.c:1772 usb_probe_interface+0xd01/0x1310 drivers/usb/core/driver.c:396 ... Uninit was stored to memory at: ether_addr_copy include/linux/etherdevice.h:305 [inline] aqc111_read_perm_mac drivers/net/usb/aqc111.c:663 [inline] aqc111_bind+0x794/0x1150 drivers/net/usb/aqc111.c:713 usbnet_probe+0xbe6/0x4390 drivers/net/usb/usbnet.c:1772 usb_probe_interface+0xd01/0x1310 drivers/usb/core/driver.c:396 call_driver_probe drivers/base/dd.c:-1 [inline] ... Local variable buf.i created at: aqc111_read_perm_mac drivers/net/usb/aqc111.c:656 [inline] aqc111_bind+0x221/0x1150 drivers/net/usb/aqc111.c:713 usbnet_probe+0xbe6/0x4390 drivers/net/usb/usbnet.c:1772
-
Vulnerabilidad en kernel de Linux (CVE-2025-38154)
Severidad: ALTA
Fecha de publicación: 03/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: bpf, sockmap: Evite usar sk_socket después de liberar al enviar El sk->sk_socket no está bloqueado o referenciado en el hilo del backlog, y durante la llamada a skb_send_sock(), hay una condición de ejecución con la liberación de sk_socket. Todos los tipos de sockets (tcp/udp/unix/vsock) se verán afectados. Condiciones de ejecuciones: ''' CPU0 CPU1 backlog::skb_send_sock sendmsg_unlocked sock_sendmsg sock_sendmsg_nosec close(fd): ... ops->release() -> sock_map_close() sk_socket->ops = NULL free(socket) sock->ops->sendmsg ^ pánico aquí ''' La referencia de psock se convierte en 0 después de ejecutar sock_map_close(). ''' void sock_map_close() { ... if (likely(psock)) { ... // !! aquí eliminamos psock y la referencia de psock se convierte en 0 sock_map_remove_links(sk, psock) psock = sk_psock_get(sk); if (unlikely(!psock)) goto no_psock; <=== El control salta aquí mediante goto ... cancel_delayed_work_sync(&psock->work); <=== no se ejecuta sk_psock_put(sk, psock); ... } ''' Basándonos en el hecho de que ya esperamos a que finalice la cola de trabajo en sock_map_close() si psock está retenido, simplemente aumentamos el recuento de referencias de psock para evitar condiciones de ejecución. Con este parche, si el hilo de la lista de tareas pendientes se está ejecutando, sock_map_close() esperará a que se complete el hilo de la lista de tareas pendientes y cancelará todo el trabajo pendiente. Si no hay trabajos pendientes en ejecución, cualquier trabajo pendiente que no haya comenzado para entonces fallará al ser invocado por sk_psock_get(), ya que el recuento de referencias de psock se ha puesto a cero, y sk_psock_drop() cancelará todos los trabajos mediante cancel_delayed_work_sync(). En resumen, necesitamos sincronización para coordinar el hilo de trabajo pendiente y el hilo de cierre. El pánico que me entró: ''' Workqueue: events sk_psock_backlog RIP: 0010:sock_sendmsg+0x21d/0x440 RAX: 0000000000000000 RBX: ffffc9000521fad8 RCX: 0000000000000001 ... Call Trace: ? die_addr+0x40/0xa0 ? exc_general_protection+0x14c/0x230 ? asm_exc_general_protection+0x26/0x30 ? sock_sendmsg+0x21d/0x440 ? sock_sendmsg+0x3e0/0x440 ? __pfx_sock_sendmsg+0x10/0x10 __skb_send_sock+0x543/0xb70 sk_psock_backlog+0x247/0xb80 ... '''
-
Vulnerabilidad en kernel de Linux (CVE-2025-38157)
Severidad: ALTA
Fecha de publicación: 03/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: wifi: ath9k_htc: Cancelar la gestión de balizas de software si está deshabilitada. Un dispositivo USB malicioso puede enviar un evento WMI_SWBA_EVENTID desde un dispositivo administrado por ath9k_htc antes de que se haya habilitado la baliza. Esto provoca un error de dispositivo por cero en el controlador, lo que provoca un bloqueo o una lectura fuera de los límites. Para evitarlo, cancele la gestión en ath9k_htc_swba() si las balizas no están habilitadas.
-
Vulnerabilidad en kernel de Linux (CVE-2025-38200)
Severidad: MEDIA
Fecha de publicación: 04/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: i40e: se corrige el acceso de escritura MMIO a una página no válida en i40e_clear_hw. Cuando el dispositivo envía una entrada específica, puede producirse un desbordamiento de enteros, lo que provoca el acceso de escritura MMIO a una página no válida. Para evitar este desbordamiento, cambie el tipo de las variables relacionadas.
-
Vulnerabilidad en kernel de Linux (CVE-2025-38202)
Severidad: MEDIA
Fecha de publicación: 04/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: bpf: La comprobación de rcu_read_lock_trace_held() en bpf_map_lookup_percpu_elem() también está disponible para programas bpf en suspensión. Cuando BPF JIT está deshabilitado o en un host de 32 bits, bpf_map_lookup_percpu_elem() no se incluirá en línea. Su uso en un programa bpf en suspensión activará la advertencia en bpf_map_lookup_percpu_elem(), ya que el programa bpf solo mantiene el bloqueo rcu_read_lock_trace. Por lo tanto, se debe agregar la comprobación omitida.
-
Vulnerabilidad en kernel de Linux (CVE-2025-38203)
Severidad: MEDIA
Fecha de publicación: 04/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: jfs: Fix null-ptr-deref in jfs_ioc_trim [Informe de Syzkaller] Oops: fallo de protección general, probablemente para la dirección no canónica 0xdffffc0000000087: 0000 [#1 KASAN: null-ptr-deref in range [0x0000000000000438-0x000000000000043f] CPU: 2 UID: 0 PID: 10614 Comm: syz-executor.0 Not tainted 6.13.0-rc6-gfbfd64d25c7a-dirty #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 Sched_ext: serialise (enabled+all), task: runnable_at=-30ms RIP: 0010:jfs_ioc_trim+0x34b/0x8f0 Code: e7 e8 59 a4 87 fe 4d 8b 24 24 4d 8d bc 24 38 04 00 00 48 8d 93 90 82 fe ff 4c 89 ff 31 f6 RSP: 0018:ffffc900055f7cd0 EFLAGS: 00010206 RAX: 0000000000000087 RBX: 00005866a9e67ff8 RCX: 000000000000000a RDX: 0000000000000001 RSI: 0000000000000004 RDI: 0000000000000001 RBP: dffffc0000000000 R08: ffff88807c180003 R09: 1ffff1100f830000 R10: dffffc0000000000 R11: ffffed100f830001 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000001 R15: 0000000000000438 FS: 00007fe520225640(0000) GS:ffff8880b7e80000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00005593c91b2c88 CR3: 000000014927c000 CR4: 00000000000006f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: ? __die_body+0x61/0xb0 ? die_addr+0xb1/0xe0 ? exc_general_protection+0x333/0x510 ? asm_exc_general_protection+0x26/0x30 ? jfs_ioc_trim+0x34b/0x8f0 jfs_ioctl+0x3c8/0x4f0 ? __pfx_jfs_ioctl+0x10/0x10 ? __pfx_jfs_ioctl+0x10/0x10 __se_sys_ioctl+0x269/0x350 ? __pfx___se_sys_ioctl+0x10/0x10 ? do_syscall_64+0xfb/0x210 do_syscall_64+0xee/0x210 ? syscall_exit_to_user_mode+0x1e0/0x330 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fe51f4903ad Code: c3 e8 a7 2b 00 00 0f 1f 80 00 00 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d RSP: 002b:00007fe5202250c8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 00007fe51f5cbf80 RCX: 00007fe51f4903ad RDX: 0000000020000680 RSI: 00000000c0185879 RDI: 0000000000000005 RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007fe520225640 R13: 000000000000000e R14: 00007fe51f44fca0 R15: 00007fe52021d000 Modules linked in: ---[ end trace 0000000000000000 ]--- RIP: 0010:jfs_ioc_trim+0x34b/0x8f0 Code: e7 e8 59 a4 87 fe 4d 8b 24 24 4d 8d bc 24 38 04 00 00 48 8d 93 90 82 fe ff 4c 89 ff 31 f6 RSP: 0018:ffffc900055f7cd0 EFLAGS: 00010206 RAX: 0000000000000087 RBX: 00005866a9e67ff8 RCX: 000000000000000a RDX: 0000000000000001 RSI: 0000000000000004 RDI: 0000000000000001 RBP: dffffc0000000000 R08: ffff88807c180003 R09: 1ffff1100f830000 R10: dffffc0000000000 R11: ffffed100f830001 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000001 R15: 0000000000000438 FS: 00007fe520225640(0000) GS:ffff8880b7e80000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00005593c91b2c88 CR3: 000000014927c000 CR4: 00000000000006f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Kernel panic - not syncing: Fatal exception [ Analysis ] Creemos que hemos encontrado un error de concurrencia en el módulo `fs/jfs` que da como resultado una desreferencia de puntero nulo. Existe un problema estrechamente relacionado que ya se ha corregido: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d6c1b3599b2feb5c7291f5ac3a36e5fa7cedb234... pero, lamentablemente, el parche aceptado parece seguir siendo susceptible a una desreferencia de puntero nulo en algunas intercalaciones. Creemos que para desencadenar el error, `JFS_SBI(ipbmap->i_sb)->bmap` se establece en NULL en `dbFreeBits` y luego se desreferencia en `jfs_ioc_trim`. Este error es poco frecuente en circunstancias normales, pero se puede desencadenar desde un programa syz.
-
Vulnerabilidad en kernel de Linux (CVE-2025-38204)
Severidad: ALTA
Fecha de publicación: 04/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: jfs: se corrige la lectura de array-index-out-of-bounds en add_missing_indices. El stbl es s8, pero debe contener desplazamientos en la ranura, que pueden ir de 0 a 127. Se añadió una comprobación de límite para ese error y se devuelve -EIO si la comprobación falla. También se hace que jfs_readdir devuelva un error si add_missing_indices devuelve un error.
-
Vulnerabilidad en kernel de Linux (CVE-2025-38206)
Severidad: ALTA
Fecha de publicación: 04/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: exfat: corrige la doble liberación en delayed_free La doble liberación podría ocurrir en la siguiente ruta. exfat_create_upcase_table() exfat_create_upcase_table() : devolver error exfat_free_upcase_table() : liberar ->vol_utbl exfat_load_default_upcase_table : devolver error exfat_kill_sb() delayed_free() exfat_free_upcase_table() <--------- doble liberación Este parche establece ->vol_util como NULL después de liberarlo.
-
Vulnerabilidad en kernel de Linux (CVE-2025-38211)
Severidad: ALTA
Fecha de publicación: 04/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: RDMA/iwcm: Corrección del use-after-free de objetos de trabajo después de la destrucción de cm_id El commit 59c68ac31e15 ("iw_cm: liberar recursos de cm_id en la última desreferencia") simplificó la gestión de recursos de cm_id al liberar cm_id una vez que se eliminaron todas las referencias a cm_id. Las referencias se eliminan al completarse los controladores de eventos iw_cm o cuando la aplicación destruye cm_id. Este commit introdujo la condición de use-after-free donde el objeto cm_id_private aún podría estar en uso por los controladores de eventos durante la destrucción de cm_id. El commit aee2424246f9 ("RDMA/iwcm: Corrección de un use-after-free relacionado con la destrucción de los ID de CM") abordó este use-after-free al vaciar todos los trabajos pendientes en la destrucción de cm_id. Sin embargo, aún quedaba otra posibilidad de use-after-free. Esto sucede con los objetos de trabajo asignados para cada cm_id_priv dentro de alloc_work_entries() durante la creación de cm_id, y posteriormente se liberan en dealloc_work_entries() una vez que se eliminan todas las referencias a cm_id. Si la última referencia de cm_id se decrementa en el manejador de eventos work, el objeto de trabajo para el trabajo en sí se elimina y causa el siguiente ERROR de use-after-free: ERROR: KASAN: slab-use-after-free in __pwq_activate_work+0x1ff/0x250 Read of size 8 at addr ffff88811f9cf800 by task kworker/u16:1/147091 CPU: 2 UID: 0 PID: 147091 Comm: kworker/u16:1 Not tainted 6.15.0-rc2+ #27 PREEMPT(voluntary) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-3.fc41 04/01/2014 Workqueue: 0x0 (iw_cm_wq) Call Trace: dump_stack_lvl+0x6a/0x90 print_report+0x174/0x554 ? __virt_addr_valid+0x208/0x430 ? __pwq_activate_work+0x1ff/0x250 kasan_report+0xae/0x170 ? __pwq_activate_work+0x1ff/0x250 __pwq_activate_work+0x1ff/0x250 pwq_dec_nr_in_flight+0x8c5/0xfb0 process_one_work+0xc11/0x1460 ? __pfx_process_one_work+0x10/0x10 ? assign_work+0x16c/0x240 worker_thread+0x5ef/0xfd0 ? __pfx_worker_thread+0x10/0x10 kthread+0x3b0/0x770 ? __pfx_kthread+0x10/0x10 ? rcu_is_watching+0x11/0xb0 ? _raw_spin_unlock_irq+0x24/0x50 ? rcu_is_watching+0x11/0xb0 ? __pfx_kthread+0x10/0x10 ret_from_fork+0x30/0x70 ? __pfx_kthread+0x10/0x10 ret_from_fork_asm+0x1a/0x30 Allocated by task 147416: kasan_save_stack+0x2c/0x50 kasan_save_track+0x10/0x30 __kasan_kmalloc+0xa6/0xb0 alloc_work_entries+0xa9/0x260 [iw_cm] iw_cm_connect+0x23/0x4a0 [iw_cm] rdma_connect_locked+0xbfd/0x1920 [rdma_cm] nvme_rdma_cm_handler+0x8e5/0x1b60 [nvme_rdma] cma_cm_event_handler+0xae/0x320 [rdma_cm] cma_work_handler+0x106/0x1b0 [rdma_cm] process_one_work+0x84f/0x1460 worker_thread+0x5ef/0xfd0 kthread+0x3b0/0x770 ret_from_fork+0x30/0x70 ret_from_fork_asm+0x1a/0x30 Freed by task 147091: kasan_save_stack+0x2c/0x50 kasan_save_track+0x10/0x30 kasan_save_free_info+0x37/0x60 __kasan_slab_free+0x4b/0x70 kfree+0x13a/0x4b0 dealloc_work_entries+0x125/0x1f0 [iw_cm] iwcm_deref_id+0x6f/0xa0 [iw_cm] cm_work_handler+0x136/0x1ba0 [iw_cm] process_one_work+0x84f/0x1460 worker_thread+0x5ef/0xfd0 kthread+0x3b0/0x770 ret_from_fork+0x30/0x70 ret_from_fork_asm+0x1a/0x30 Last potentially related work creation: kasan_save_stack+0x2c/0x50 kasan_record_aux_stack+0xa3/0xb0 __queue_work+0x2ff/0x1390 queue_work_on+0x67/0xc0 cm_event_handler+0x46a/0x820 [iw_cm] siw_cm_upcall+0x330/0x650 [siw] siw_cm_work_handler+0x6b9/0x2b20 [siw] process_one_work+0x84f/0x1460 worker_thread+0x5ef/0xfd0 kthread+0x3b0/0x770 ret_from_fork+0x30/0x70 ret_from_fork_asm+0x1a/0x30 Este error se puede reproducir repitiendo el caso de prueba blktests nvme/061 para el transporte rdma y el controlador siw. Para evitar el uso posterior a la liberación de objetos de trabajo cm_id_private, asegúrese de que la última referencia a cm_id se decremente no en los trabajos del controlador de eventos, sino en el contexto de destrucción de cm_id. Para ello, mo ---truncated---
-
Vulnerabilidad en kernel de Linux (CVE-2025-38212)
Severidad: ALTA
Fecha de publicación: 04/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: ipc: corrección para proteger las búsquedas IPCS mediante RCU. syzbot informó del descubrimiento de una vulnerabilidad de use-after-free, [0] [0]: https://lore.kernel.org/all/67af13f8.050a0220.21dd3.0038.GAE@google.com/ idr_for_each() está protegido por rwsem, pero esto no es suficiente. Si no está protegido por la región crítica de lectura de RCU, cuando idr_for_each() llama a radix_tree_node_free() mediante call_rcu() para liberar la estructura radix_tree_node, el nodo se liberará inmediatamente y, al leer el siguiente nodo en radix_tree_for_each_slot(), se podrá leer la memoria ya liberada. Por lo tanto, necesitamos agregar código para asegurarnos de que idr_for_each() esté protegido dentro de la región crítica de lectura de RCU cuando lo llamamos en shm_destroy_orphaned().
-
Vulnerabilidad en kernel de Linux (CVE-2025-38214)
Severidad: MEDIA
Fecha de publicación: 04/07/2025
Fecha de última actualización: 18/12/2025
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: fbdev: Corregir fb_set_var para evitar la desreferencia null-ptr en fb_videomode_to_var Si fb_add_videomode() en fb_set_var() no puede asignar memoria para fb_videomode, más tarde puede conducir a una desreferencia null-ptr en fb_videomode_to_var(), ya que fb_info se registra sin tener el modo en modelist que se espera que esté allí, es decir, el que se describe en fb_info->var. ================================================================ general protection fault, probably for non-canonical address 0xdffffc0000000001: 0000 [#1] PREEMPT SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f] CPU: 1 PID: 30371 Comm: syz-executor.1 Not tainted 5.10.226-syzkaller #0 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 RIP: 0010:fb_videomode_to_var+0x24/0x610 drivers/video/fbdev/core/modedb.c:901 Call Trace: display_to_var+0x3a/0x7c0 drivers/video/fbdev/core/fbcon.c:929 fbcon_resize+0x3e2/0x8f0 drivers/video/fbdev/core/fbcon.c:2071 resize_screen drivers/tty/vt/vt.c:1176 [inline] vc_do_resize+0x53a/0x1170 drivers/tty/vt/vt.c:1263 fbcon_modechanged+0x3ac/0x6e0 drivers/video/fbdev/core/fbcon.c:2720 fbcon_update_vcs+0x43/0x60 drivers/video/fbdev/core/fbcon.c:2776 do_fb_ioctl+0x6d2/0x740 drivers/video/fbdev/core/fbmem.c:1128 fb_ioctl+0xe7/0x150 drivers/video/fbdev/core/fbmem.c:1203 vfs_ioctl fs/ioctl.c:48 [inline] __do_sys_ioctl fs/ioctl.c:753 [inline] __se_sys_ioctl fs/ioctl.c:739 [inline] __x64_sys_ioctl+0x19a/0x210 fs/ioctl.c:739 do_syscall_64+0x33/0x40 arch/x86/entry/common.c:46 entry_SYSCALL_64_after_hwframe+0x67/0xd1 ================================================================ El motivo es que fb_info->var se modifica en fb_set_var() y, a continuación, se llama a fb_videomode_to_var(). Si no se logra agregar el modo a fb_info->modelist, fb_set_var() devuelve un error, pero no restaura el valor anterior de fb_info->var. Si falla, restaure fb_info->var de la misma forma que se hizo anteriormente en la función. Encontrado por el Centro de Verificación de Linux (linuxtesting.org) con Syzkaller.



