В ядре Linux устранена следующая уязвимость: net/sched: teql: Fix double-free в teql_master_xmit Всякий раз, когда устройства TEQL имеет бе…
В ядре Linux устранена следующая уязвимость: net/sched: teql: Fix double-free в teql_master_xmit Всякий раз, когда устройства TEQL имеет беззамковый Qdisc в качестве корня, qdisc_reset должен назовите использование seq_lock, чтобы избежать гонок с тропой данных. Неудача Это может привести к сбоев, таких как следующее: [ 238.028993][ T318] ОШИБКА: KASAN: бездвойника в skb_release_data (net/core/skbuff.c:1139) [ 238.0293282][T318] Бесплатно от аддра fff88810c67ec00 по задаче poc_teql_uaf_ke/318 [ 238.029749][ Т318] [ 238.029900][ T318] CPU: 3 UID: 0 PID: 318 Comm: poc_teql_ke Не испорченный 7.0.0-rc3-0014-ge5b31d988a41 #704 PREEMPT(full) [ 238.029906][T318] Аппаратное наименование: Бохс Бокс, BIOS Bochs 01/01/2011 [ 238.029910][ T318] Следы звонков: [ 238.029913][ Т318] <ТАСКА [ 238.029916][T318] dump_stack_lvl (lib/dump_stack.c:122) [ 238.029928][ T318] print_report (mm/kasan/report.c:379 mm/kasan/report.c:482) [ 238.029940][ Т318] ? skb_release_data (net/core/skbuff.c:1139) [ 238.029944][ Т318] ? srso_alias_return_tunk (arch/x86/lib/retpoline.S:221) ... [ 238.029957][ Т318] ? skb_release_data (net/core/skbuff.c:1139) [ 238.029969][ T318] kasan_report_invalid_free (mm/kasan/report.c:221 mm/kasan/report.c:563) [ 238.029979][ T318] ? skb_release_data (net/core/skbuff.c:1139) [ 238.029989][T318] check_slab_allocation (mm/kasan/common.c:231) [ 238.029995][T318] kmem_cache_free (mm/slub.c:2637 (дискриминатор 1) mm/slub.c:6168 (дискриминатор 1) mm/slub.c:6298 (дискриминатор 1) [ 238.030004][ T318] skb_release_data (net/core/skbuff.c:1139) ... [ 238.030025][T318] sk_skb_reason_drop (net/core/skbuff.c:1256) [ 238.030032][T318] pfifo_fast_reset (.include/linux/pr_ring.h:171 ./include/linux/pr_ring.h:309 ./include/linux/skb_array.h:98 net/sched/sch_generic.c:827) [ 238.030039][ T318] ? srso_alias_return_tunk (arch/x86/lib/retpoline.S:221) ... [ 238.030054][ T318] qdisc_reset (net/sched/sch_generic.c:1034) [ 238.030062][ T318] teql_destroy (.inclue/linux/spinlock.h:395 net/sched/sch_teql.c:157) [ 238.030071][ T318] __qdisc_destroy (.include/net/pkt_sched.h:328 нет/sched/sched/sch_generic.c:1077) [ 238.030077][T318] qdisc_graft (net/sched/sch_api.c:1062 net/sched/sch_api.c:1053 net/sched/sch_api.c:1159) [ 238.030089][ T318] ? __pfx_qdisc_graft (net/sched/sch_api.c:1091) [ 238.030095][ Т318] ? srso_alias_return_thunk (arch/x86/lib/retpoline.S:221) [ 238.030102][ Т318] ? srso_alias_return_thunk (arch/x86/lib/retpoline.S:221) [ 238.030106][ T318] ? srso_alias_return_tunk (arch/x86/lib/retpoline.S:221) [ 238.030114][ T318] tc_get_qdisc (net/sched/sch_api.c:1529 net/sched/sch_api.c:1556) ... [ 238.072958][ T318] Выделено заданием 303 на cpu 5 по состоянию на 238.026275s: [ 238.073392][ T318] kasan_save_stack (mm/kasan/common.c:58) [ 238.073884][ T318] kasan_save_track (mm/kasan/common.c:64 (дискриминатор 5) mm/kasan/common.c:79 (дикриминатор 5)) [ 238.074230][ Т318] __kasan_slab_alloc (mm/kasan/common.c:369) [ 238.074578][ T318] kmm_cache_alloc_node_noprof (.include/linux/kasan.h:253 mm/slub.c:4542 mm/slub.c:4869 mm/slub.c:4921) [ 238.076091][ T318] kmalloc_reserve (net/core/skbuff.c:616 (дикриминатор 107)) [ 238.076450][ Т318] __аллоцкб (net/core/skbuff.c:713) [ 238.076834][T318] alloc_skb_with_frags (./inclue/linux/skbuff.h:1383 нет/core/skbuff.c:6763) [ 238.077178][ Т318] sock_alloc_send_pskb (net/core/sock.c:2997) [ 238.077520][T318] packet_sendmsg (net/packet/af_packet.c:2926 net/packet/afet.c:3019 net/packet/af_packet.c:3108) [ 238.081469][ Т318] [ 238.081870][T318] Освободен заданием 299 на cpu 1 по 238.028496s: [ 238.082761][ Т318] Касан_сав_штак (мм/kasan/common.c:58) [ 238.083481][T318] kasan_save_track (mm/kasan/common.c:64 (дискриминатор 5) mm/kasan/common.c:79 (дикриминатор 5)) [ 238.085348][ T318] kasan_save_free_info (mm/kasan/generic.c:587 (дикриминатор 1)) [ 238.085900][ Т318] __kasan_slab_free (мм/ ---усеченный---
Продукт вызывает free() дважды для одного и того же адреса памяти.
https://cwe.mitre.org/data/definitions/415.html →Открыть в коллекции CWE →| Продукт | Вендор | Статус |
|---|---|---|
| linux | Отслеживается | |
| linux_kernel | * | Отслеживается |
| kernel-doc-6.12 | Отслеживается | |
| kernel-doc-6.12 | Отслеживается | |
| kernel-doc-6.12 | Отслеживается | |
| kernel-doc-6.18 | Отслеживается | |
| kernel-doc-6.18 | Отслеживается | |
| kernel-doc-un | Отслеживается | |
| kernel-headers-6.12 | Отслеживается | |
| kernel-headers-6.12 | Отслеживается | |
| kernel-headers-6.12 | Отслеживается | |
| kernel-headers-6.18 | Отслеживается | |
| kernel-headers-6.18 | Отслеживается | |
| kernel-headers-modules-6.12 | Отслеживается | |
| kernel-headers-modules-6.12 | Отслеживается | |
| kernel-headers-modules-6.12 | Отслеживается | |
| kernel-headers-modules-6.18 | Отслеживается | |
| kernel-headers-modules-6.18 | Отслеживается | |
| kernel-headers-modules-pine | Отслеживается | |
| kernel-headers-modules-pine | Отслеживается |