Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en kernel de Linux (CVE-2025-22109)

Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
16/04/2025
Última modificación:
17/04/2025

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: ax25: Eliminar el autobind roto El enlace del socket AX25 mediante la función autobind genera pérdidas de memoria en ax25_connect() y también pérdidas de recuento de referencias en ax25_release(). Se detectó una fuga de memoria con kmemleak: == ... __sys_connect (net/socket.c:2064) __x64_sys_connect (net/socket.c:2067) do_syscall_64 (arch/x86/entry/common.c:52 arch/x86/entry/common.c:83) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) ===================================================================== Cuando se enlaza un socket, los recuentos de referencias se deben incrementar de la forma en que se hace en ax25_bind() y ax25_setsockopt() (SO_BINDTODEVICE). En caso de enlace automático, los recuentos de referencias no se incrementan. Este error provoca el siguiente problema reportado por Syzkaller: == ... ADVERTENCIA: CPU: 0 PID: 5317 en lib/refcount.c:31 refcount_warn_saturate+0xfa/0x1d0 lib/refcount.c:31 Módulos vinculados: CPU: 0 UID: 0 PID: 5317 Comm: syz-executor318 No contaminado 6.14.0-rc4-syzkaller-00278-gece144f151ac #0 Nombre del hardware: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 01/04/2014 RIP: 0010:refcount_warn_saturate+0xfa/0x1d0 lib/refcount.c:31 ... Rastreo de llamadas: __refcount_dec include/linux/refcount.h:336 [en línea] refcount_dec include/linux/refcount.h:351 [en línea] ref_tracker_free+0x6af/0x7e0 lib/ref_tracker.c:236 netdev_tracker_free include/linux/netdevice.h:4302 [en línea] netdev_put include/linux/netdevice.h:4319 [en línea] ax25_release+0x368/0x960 net/ax25/af_ax25.c:1080 __sock_release net/socket.c:647 [en línea] sock_close+0xbc/0x240 net/socket.c:1398 __fput+0x3e9/0x9f0 fs/file_table.c:464 __do_sys_close fs/open.c:1580 [en línea] __se_sys_close fs/open.c:1565 [en línea] __x64_sys_close+0x7f/0x110 fs/open.c:1565 do_syscall_x64 arch/x86/entry/common.c:52 [en línea] do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f ... ===================================================================== Considerando los problemas anteriores y los comentarios que se dejaron en el código que dicen: "check Si podemos eliminar esta función, está defectuosa."; "La vinculación automática en este caso puede o no funcionar."; - Es mejor eliminar esta función por completo que corregirla, ya que está defectuosa y provoca diversos errores de memoria. Ahora, llamar a connect() sin vincular primero el socket generará un error (-EINVAL). El software de espacio de usuario que depende de la función de vinculación automática podría fallar. Sin embargo, esta función no parece ser muy utilizada con este controlador específico, ya que no era fiable en ningún momento y, de todos modos, ya está defectuosa. Por ejemplo, los paquetes ax25-tools y ax25-apps para distribuciones populares no utilizan la función de vinculación automática para AF_AX25. Encontrado por el Centro de Verificación de Linux (linuxtesting.org) con Syzkaller.

Impacto