Vulnerabilidad en Linux (CVE-2026-23171)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
14/02/2026
Última modificación:
18/02/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
bonding: corrige el uso después de liberación debido a un fallo de enslave después de la actualización del array de esclavos<br />
<br />
Corrige un uso después de liberación que ocurre debido a un fallo de enslave después de que el nuevo esclavo ha sido añadido al array. Dado que el nuevo esclavo puede ser usado para Tx inmediatamente, podemos usarlo después de que ha sido liberado por la ruta de limpieza de errores de enslave que libera la memoria del esclavo asignada. Se supone que la actualización del array de esclavos debe ser llamada al final cuando no se esperan más fallos de enslave. Muévelo después de la configuración de xdp para evitar cualquier problema.<br />
<br />
Es muy fácil reproducir el problema con un programa xdp_pass simple:<br />
ip l add bond1 type bond mode balance-xor<br />
ip l set bond1 up<br />
ip l set dev bond1 xdp object xdp_pass.o sec xdp_pass<br />
ip l add dumdum type dummy<br />
<br />
Luego ejecuta en paralelo:<br />
while :; do ip l set dumdum master bond1 1&gt;/dev/null 2&gt;&amp;1; done;<br />
mausezahn bond1 -a own -b rand -A rand -B 1.1.1.1 -c 0 -t tcp &#39;dp=1-1023, flags=syn&#39;<br />
<br />
El fallo ocurre casi inmediatamente:<br />
[ 605.602850] Oops: general protection fault, probably for non-canonical address 0xe0e6fc2460000137: 0000 [#1] SMP KASAN NOPTI<br />
[ 605.602916] KASAN: maybe wild-memory-access in range [0x07380123000009b8-0x07380123000009bf]<br />
[ 605.602946] CPU: 0 UID: 0 PID: 2445 Comm: mausezahn Kdump: loaded Tainted: G B 6.19.0-rc6+ #21 PREEMPT(voluntary)<br />
[ 605.602979] Tainted: [B]=BAD_PAGE<br />
[ 605.602998] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014<br />
[ 605.603032] RIP: 0010:netdev_core_pick_tx+0xcd/0x210<br />
[ 605.603063] Code: 48 89 fa 48 c1 ea 03 80 3c 02 00 0f 85 3e 01 00 00 48 b8 00 00 00 00 00 fc ff df 4c 8b 6b 08 49 8d 7d 30 48 89 fa 48 c1 ea 03 &lt;80&gt; 3c 02 00 0f 85 25 01 00 00 49 8b 45 30 4c 89 e2 48 89 ee 48 89<br />
[ 605.603111] RSP: 0018:ffff88817b9af348 EFLAGS: 00010213<br />
[ 605.603145] RAX: dffffc0000000000 RBX: ffff88817d28b420 RCX: 0000000000000000<br />
[ 605.603172] RDX: 00e7002460000137 RSI: 0000000000000008 RDI: 07380123000009be<br />
[ 605.603199] RBP: ffff88817b541a00 R08: 0000000000000001 R09: fffffbfff3ed8c0c<br />
[ 605.603226] R10: ffffffff9f6c6067 R11: 0000000000000001 R12: 0000000000000000<br />
[ 605.603253] R13: 073801230000098e R14: ffff88817d28b448 R15: ffff88817b541a84<br />
[ 605.603286] FS: 00007f6570ef67c0(0000) GS:ffff888221dfa000(0000) knlGS:0000000000000000<br />
[ 605.603319] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033<br />
[ 605.603343] CR2: 00007f65712fae40 CR3: 000000011371b000 CR4: 0000000000350ef0<br />
[ 605.603373] Call Trace:<br />
[ 605.603392] <br />
[ 605.603410] __dev_queue_xmit+0x448/0x32a0<br />
[ 605.603434] ? __pfx_vprintk_emit+0x10/0x10<br />
[ 605.603461] ? __pfx_vprintk_emit+0x10/0x10<br />
[ 605.603484] ? __pfx___dev_queue_xmit+0x10/0x10<br />
[ 605.603507] ? bond_start_xmit+0xbfb/0xc20 [bonding]<br />
[ 605.603546] ? _printk+0xcb/0x100<br />
[ 605.603566] ? __pfx__printk+0x10/0x10<br />
[ 605.603589] ? bond_start_xmit+0xbfb/0xc20 [bonding]<br />
[ 605.603627] ? add_taint+0x5e/0x70<br />
[ 605.603648] ? add_taint+0x2a/0x70<br />
[ 605.603670] ? end_report.cold+0x51/0x75<br />
[ 605.603693] ? bond_start_xmit+0xbfb/0xc20 [bonding]<br />
[ 605.603731] bond_start_xmit+0x623/0xc20 [bonding]



