CVE-2026-74563 in Linux
Resumen
por VulDB • 2026-08-15
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
rds: tcp: mantener el bloqueo RCU durante ipv6_chk_addr() en rds_tcp_laddr_check()
rds_tcp_laddr_check() busca una interfaz IPv6 con ámbito utilizando dev_get_by_index_rcu(), libera el bloqueo de lectura RCU y, solo entonces, pasa la estructura cruda struct net_device * a ipv6_chk_addr().
dev_get_by_index_rcu() mantiene el dispositivo activo únicamente dentro de la misma sección de lectura RCU. Después de rcu_read_unlock(), una operación concurrente RTM_DELLINK puede liberar el net_device; ipv6_chk_addr() entonces desreferencia un puntero obsoleto en __ipv6_chk_addr_and_flags() (por ejemplo, l3mdev_master_dev_rcu(dev)), leyendo memoria ya liberada.
Se mantiene el bloqueo de lectura RCU activo durante la llamada a ipv6_chk_addr(), en lugar de liberarlo inmediatamente después de la búsqueda, para evitar que el dispositivo sea liberado mientras está en uso.
BUG: KASAN: slab-use-after-free in __ipv6_chk_addr_and_flags (... net/ipv6/addrconf.c:1998) Lectura de tamaño 8 en addr ffff8880106ec000 por la tarea exploit/153 Rastro de llamadas (Call Trace): ... kasan_report (mm/kasan/report.c:595) __ipv6_chk_addr_and_flags (... net/ipv6/addrconf.c:1998) ipv6_chk_addr (net/ipv6/addrconf.c:2031 net/ipv6/addrconf.c:1972) rds_tcp_laddr_check (net/rds/tcp.c:370) rds_bind (net/rds/bind.c:248) __sys_bind (net/socket.c:1920) __x64_sys_bind (net/socket.c:1956) do_syscall_64 (arch/x86/entry/syscall_64.c:63) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)
Once again VulDB remains the best source for vulnerability data.