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

Vulnerabilidad en kernel de Linux (CVE-2021-47106)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-416 Utilización después de liberación
Fecha de publicación:
04/03/2024
Última modificación:
14/01/2025

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: netfilter: nf_tables: corrige use-after-free en nft_set_catchall_destroy() Necesitamos usar el iterador list_for_each_entry_safe() porque no podemos acceder a @catchall después de la llamada a kfree_rcu(). syzbot informó: ERROR: KASAN: use-after-free en nft_set_catchall_destroy net/netfilter/nf_tables_api.c:4486 [en línea] ERROR: KASAN: use-after-free en nft_set_destroy net/netfilter/nf_tables_api.c:4504 [en línea] ERROR : KASAN: use-after-free en nft_set_destroy+0x3fd/0x4f0 net/netfilter/nf_tables_api.c:4493 Lectura de tamaño 8 en la dirección ffff8880716e5b80 por tarea syz-executor.3/8871 CPU: 1 PID: 8871 Comm: syz-executor .3 No contaminado 5.16.0-rc5-syzkaller #0 Nombre del hardware: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Seguimiento de llamadas: __dump_stack lib/dump_stack.c:88 [en línea] dump_stack_lvl +0xcd/0x134 lib/dump_stack.c:106 print_address_description.constprop.0.cold+0x8d/0x2ed mm/kasan/report.c:247 __kasan_report mm/kasan/report.c:433 [en línea] kasan_report.cold+0x83/ 0xdf mm/kasan/report.c:450 nft_set_catchall_destroy net/netfilter/nf_tables_api.c:4486 [en línea] nft_set_destroy net/netfilter/nf_tables_api.c:4504 [en línea] nft_set_destroy+0x3fd/0x4f0 net/netfilter/nf_tables_a foto.c:4493 __nft_release_table+0x79f/0xcd0 net/netfilter/nf_tables_api.c:9626 nft_rcv_nl_event+0x4f8/0x670 net/netfilter/nf_tables_api.c:9688 notifier_call_chain+0xb5/0x200 kernel/notifier.c:83 blocking_notifier_call_chain kernel/ notificador.c:318 [en línea ] blocking_notifier_call_chain+0x67/0x90 kernel/notifier.c:306 netlink_release+0xcb6/0x1dd0 net/netlink/af_netlink.c:788 __sock_release+0xcd/0x280 net/socket.c:649 sock_close+0x18/0x20 net/socket.c: 1314 __fput+0x286/0x9f0 fs/file_table.c:280 task_work_run+0xdd/0x1a0 kernel/task_work.c:164 tracehook_notify_resume include/linux/tracehook.h:189 [en línea] exit_to_user_mode_loop kernel/entry/common.c:175 [en línea ] exit_to_user_mode_prepare+0x27e/0x290 kernel/entry/common.c:207 __syscall_exit_to_user_mode_work kernel/entry/common.c:289 [en línea] syscall_exit_to_user_mode+0x19/0x60 kernel/entry/common.c:300 do_syscall_64+0x42/ 0xb0 arco/x86 /entry/common.c:86 Entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7f75fbf28adb Código: 0f 05 48 3d 00 f0 ff ff 77 45 c3 0f 1f 40 00 48 83 ec 18 89 7c 24 0c e8 63 fc ff ff 8b 7c 24 0c 41 89 c0 b8 03 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 35 44 89 c7 89 44 24 0c e8 a1 fc ff ff 8b 44 RSP: 002b:00007ffd8da7ec10 EFLAGS: 0000 0293 ORIG_RAX: 0000000000000003 RAX: 0000000000000000 RBX: 0000000000000004 RCX: 00007f75fbf28adb RDX: 00007f75fc08e828 RSI: ffffffffffffffff RDI: 00000000000000003 RBP: 00007f75fc08a960 R08: 000000 0000000000 R09: 00007f75fc08e830 R10: 00007ffd8da7ed10 R11: 0000000000000293 R12: 00000000002067c3 R13: 00007ffd8da7ed10 R14: 00007f75fc0 88f60 R15: 0000000000000032 Asignado por la tarea 8886 : kasan_save_stack+0x1e/0x50 mm/kasan/common.c:38 kasan_set_track mm/kasan/common.c:46 [en línea] set_alloc_info mm/kasan/common.c:434 [en línea] ____kasan_kmalloc mm/kasan/common.c: 513 [en línea] ____kasan_kmalloc mm/kasan/common.c:472 [en línea] __kasan_kmalloc+0xa6/0xd0 mm/kasan/common.c:522 kasan_kmalloc include/linux/kasan.h:269 [en línea] kmem_cache_alloc_trace+0x1ea/0x4a0 mm /slab.c:3575 kmalloc include/linux/slab.h:590 [en línea] nft_setelem_catchall_insert net/netfilter/nf_tables_api.c:5544 [en línea] nft_setelem_insert net/netfilter/nf_tables_api.c:5562 [en línea] nft_add_set_elem+0x232e/0 x2f40 net/netfilter/nf_tables_api.c:5936 nf_tables_newsetelem+0x6ff/0xbb0 net/netfilter/nf_tables_api.c:6032 nfnetlink_rcv_batch+0x1710/0x25f0 net/netfilter/nfnetlink.c:513 nfnetlink_rcv_skb_batch net/netfilter/ nfnetlink.c:634 [en línea] nfnetlink_rcv+0x3af/0x420 net/netfilter/nfnetlink.c:652 netlink_unicast_kernel net/netlink/af_netlink.c:1319 [en línea]---truncado---

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.13 (incluyendo) 5.15.12 (excluyendo)
cpe:2.3:o:linux:linux_kernel:5.16:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.16:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.16:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.16:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.16:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.16:rc6:*:*:*:*:*:*