V
Сканер-ВС
ГлавнаяКаталогИсточникиCWECAPECATT&CKМеры защитыПродуктыВендорыДокументация
← Вернуться к списку
CWE-414БазаЧерновик
Абстракция: База
Статус: Черновик
Источник ↗

Отсутствие проверки блокировки

Продукт не проверяет наличие блокировки перед выполнением чувствительных операций с ресурсом.

Открыть в каталоге с фильтром CWE →

Связанные CAPEC

Связанные уязвимости

CVE-2022-48926В ядре Linux устранена следующая уязвимость: usb: gadget: rndis: добавить спин-блокировку для списка ответов rndis. Для списка ответов rndis отсутствует блокировка. Это может привести к повреждению списка, если есть два разных list_add одновременно, как показано ниже. Лучше добавить в rndis_add_response / rndis_free_response / rndis_get_next_response, чтобы предотвратить состояние гонки в списке ответов. [ 361.894299] [1: irq/191-dwc3:16979] повреждение list_add. next->prev должен быть prev (ffffff80651764d0), но был ffffff883dc36f80. (next=ffffff80651764d0). [ 361.904380] [1: irq/191-dwc3:16979] Call trace: [ 361.904391] [1: irq/191-dwc3:16979] __list_add_valid+0x74/0x90 [ 361.904401] [1: irq/191-dwc3:16979] rndis_msg_parser+0x168/0x8c0 [ 361.904409] [1: irq/191-dwc3:16979] rndis_command_complete+0x24/0x84 [ 361.904417] [1: irq/191-dwc3:16979] usb_gadget_giveback_request+0x20/0xe4 [ 361.904426] [1: irq/191-dwc3:16979] dwc3_gadget_giveback+0x44/0x60 [ 361.904434] [1: irq/191-dwc3:16979] dwc3_ep0_complete_data+0x1e8/0x3a0 [ 361.904442] [1: irq/191-dwc3:16979] dwc3_ep0_interrupt+0x29c/0x3dc [ 361.904450] [1: irq/191-dwc3:16979] dwc3_process_event_entry+0x78/0x6cc [ 361.904457] [1: irq/191-dwc3:16979] dwc3_process_event_buf+0xa0/0x1ec [ 361.904465] [1: irq/191-dwc3:16979] dwc3_thread_interrupt+0x34/0x5c
CVE-2021-47132В ядре Linux устранена следующая уязвимость: mptcp: исправление повреждения sk_forward_memory при повторной передаче Обработка MPTCP sk_forward_memory немного особенная, поскольку это поле защищено спин-блокировкой сокета msk, а не обычной блокировкой сокета. В настоящее время у нас есть путь кода, обновляющий это поле без обработки соответствующей блокировки: __mptcp_retrans() -> __mptcp_clean_una_wakeup() Несколько вспомогательных функций в __mptcp_clean_una_wakeup() будут обновлять sk_forward_alloc, что может привести к повреждению этого поля, как сообщил Маттье. Для решения этой проблемы предоставляется и используется новый вариант обвиняемой функции, который явно получает спин-блокировку msk.
CVE-2023-52524В ядре Linux устранена следующая уязвимость: net: nfc: llcp: Добавление блокировки при изменении списка устройств. При изменении списка устройств необходимо удерживать связанную с ним блокировку, иначе список может быть поврежден, как обнаружил syzbot.
CVE-2023-52505В ядре Linux устранена следующая уязвимость: phy: lynx-28g: сериализовать параллельные вызовы phy_set_mode_ext() к общим регистрам. Регистры конфигурации преобразователя протокола PCC8, PCCC, PCCD (реализованные драйвером), а также другие, управляют преобразователями протокола из нескольких линий (каждая представлена как отдельная struct phy). Поэтому, если есть одновременные вызовы phy_set_mode_ext() к линиям, совместно использующим один и тот же регистр PCC (либо для "старого", либо для "нового" протокола), возможно повреждение значений, запрограммированных в оборудование, поскольку lynx_28g_rmw() не имеет блокировки. Добавьте спин-блокировку в struct lynx_28g_priv, совместно используемую всеми линиями, и возьмите глобальную спин-блокировку из реализации phy_ops :: set_mode(). Нет других вызывающих сторон, которые изменяют регистры PCC.
CVE-2025-54510Отсутствующая проверка блокировки в прошивке AMD Secure Processor (ASP) может позволить локально аутентифицированному злоумышленнику с административными привилегиями изменять маршрутизацию MMIO на некоторых продуктах на основе Zen 5, что может поставить под угрозу целостность гостевых систем.
CVE-2023-5447Отсутствие проверки блокировки в SynHsaService может привести к состоянию use-after-free, которое вызывает ненормальное завершение работы службы, что приводит к отказу в обслуживании для Synaptics Hardware Support App.
CVE-2022-48810В ядре Linux устранена следующая уязвимость: ipmr,ip6mr: получение RTNL перед вызовом ip[6]mr_free_table() при сбое. ip[6]mr_free_table() можно вызывать только под блокировкой RTNL. RTNL: assertion failed at net/core/dev.c (10367) WARNING: CPU: 1 PID: 5890 at net/core/dev.c:10367 unregister_netdevice_many+0x1246/0x1850 net/core/dev.c:10367 Modules linked in: CPU: 1 PID: 5890 Comm: syz-executor.2 Not tainted 5.16.0-syzkaller-11627-g422ee58dc0ef #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 RIP: 0010:unregister_netdevice_many+0x1246/0x1850 net/core/dev.c:10367 Code: 0f 85 9b ee ff ff e8 69 07 4b fa ba 7f 28 00 00 48 c7 c6 00 90 ae 8a 48 c7 c7 40 90 ae 8a c6 05 6d b1 51 06 01 e8 8c 90 d8 01 <0f> 0b e9 70 ee ff ff e8 3e 07 4b fa 4c 89 e7 e8 86 2a 59 fa e9 ee RSP: 0018:ffffc900046ff6e0 EFLAGS: 00010286 RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000 RDX: ffff888050f51d00 RSI: ffffffff815fa008 RDI: fffff520008dfece RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 R10: ffffffff815f3d6e R11: 0000000000000000 R12: 00000000fffffff4 R13: dffffc0000000000 R14: ffffc900046ff750 R15: ffff88807b7dc000 FS: 00007f4ab736e700(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fee0b4f8990 CR3: 000000001e7d2000 CR4: 00000000003506e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: <TASK> mroute_clean_tables+0x244/0xb40 net/ipv6/ip6mr.c:1509 ip6mr_free_table net/ipv6/ip6mr.c:389 [inline] ip6mr_rules_init net/ipv6/ip6mr.c:246 [inline] ip6mr_net_init net/ipv6/ip6mr.c:1306 [inline] ip6mr_net_init+0x3f0/0x4e0 net/ipv6/ip6mr.c:1298 ops_init+0xaf/0x470 net/core/net_namespace.c:140 setup_net+0x54f/0xbb0 net/core/net_namespace.c:331 copy_net_ns+0x318/0x760 net/core/net_namespace.c:475 create_new_namespaces+0x3f6/0xb20 kernel/nsproxy.c:110 copy_namespaces+0x391/0x450 kernel/nsproxy.c:178 copy_process+0x2e0c/0x7300 kernel/fork.c:2167 kernel_clone+0xe7/0xab0 kernel/fork.c:2555 __do_sys_clone+0xc8/0x110 kernel/fork.c:2672 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7f4ab89f9059 Code: Unable to access opcode bytes at RIP 0x7f4ab89f902f. RSP: 002b:00007f4ab736e118 EFLAGS: 00000206 ORIG_RAX: 0000000000000038 RAX: ffffffffffffffda RBX: 00007f4ab8b0bf60 RCX: 00007f4ab89f9059 RDX: 0000000020000280 RSI: 0000000020000270 RDI: 0000000040200000 RBP: 00007f4ab8a5308d R08: 0000000020000300 R09: 0000000020000300 R10: 00000000200002c0 R11: 0000000000000206 R12: 0000000000000000 R13: 00007ffc3977cc1f R14: 00007f4ab736e300 R15: 0000000000022000 </TASK>
CVE-2025-54625Уязвимость состояния гонки в модуле файловой системы ядра. Влияние: Успешная эксплуатация этой уязвимости может повлиять на доступность. Дополнительная информация из источника [1]: не удалось извлечь релевантную техническую информацию. Источники: - [1] https://consumer.huawei.com/en/support/bulletin/2025/8/
CVE-2023-52635В ядре Linux устранена следующая уязвимость: PM / devfreq: Синхронизировать devfreq_monitor_[start/stop] Существует вероятность того, что частая смена governor в цикле приведет к повреждению списка таймеров, когда отмена таймера выполняется из двух мест: сначала из cancel_delayed_work_sync(), а затем из expire_timers(), что можно увидеть из трассировок [1]. while true do echo "simple_ondemand" > /sys/class/devfreq/1d84000.ufshc/governor echo "performance" > /sys/class/devfreq/1d84000.ufshc/governor done Похоже, что проблема в драйвере devfreq, где device_monitor_[start/stop] необходимо синхронизировать, чтобы отложенная работа не была повреждена во время ее постановки в очередь, выполнения или отмены. Давайте использовать флаг опроса и блокировку devfreq для синхронизации постановки экземпляра таймера в очередь дважды и повреждения рабочих данных. [1] ... .. <idle>-0 [003] 9436.209662: timer_cancel timer=0xffffff80444f0428 <idle>-0 [003] 9436.209664: timer_expire_entry timer=0xffffff80444f0428 now=0x10022da1c function=__typeid__ZTSFvP10timer_listE_global_addr baseclk=0x10022da1c <idle>-0 [003] 9436.209718: timer_expire_exit timer=0xffffff80444f0428 kworker/u16:6-14217 [003] 9436.209863: timer_start timer=0xffffff80444f0428 function=__typeid__ZTSFvP10timer_listE_global_addr expires=0x10022da2b now=0x10022da1c flags=182452227 vendor.xxxyyy.ha-1593 [004] 9436.209888: timer_cancel timer=0xffffff80444f0428 vendor.xxxyyy.ha-1593 [004] 9436.216390: timer_init timer=0xffffff80444f0428 vendor.xxxyyy.ha-1593 [004] 9436.216392: timer_start timer=0xffffff80444f0428 function=__typeid__ZTSFvP10timer_listE_global_addr expires=0x10022da2c now=0x10022da1d flags=186646532 vendor.xxxyyy.ha-1593 [005] 9436.220992: timer_cancel timer=0xffffff80444f0428 xxxyyyTraceManag-7795 [004] 9436.261641: timer_cancel timer=0xffffff80444f0428 [2] 9436.261653][ C4] Невозможно обработать запрос подкачки ядра по виртуальному адресу dead00000000012a [ 9436.261664][ C4] Информация об аборте памяти: [ 9436.261666][ C4] ESR = 0x96000044 [ 9436.261669][ C4] EC = 0x25: DABT (текущий EL), IL = 32 бита [ 9436.261671][ C4] SET = 0, FnV = 0 [ 9436.261673][ C4] EA = 0, S1PTW = 0 [ 9436.261675][ C4] Информация об аборте данных: [ 9436.261677][ C4] ISV = 0, ISS = 0x00000044 [ 9436.261680][ C4] CM = 0, WnR = 1 [ 9436.261682][ C4] [dead00000000012a] адрес между диапазонами адресов пользователя и ядра [ 9436.261685][ C4] Внутренняя ошибка: Oops: 96000044 [#1] PREEMPT SMP [ 9436.261701][ C4] Пропустить дамп буфера md ftrace для: 0x3a982d0 ... [ 9436.262138][ C4] CPU: 4 PID: 7795 Comm: TraceManag Tainted: G S W O 5.10.149-android12-9-o-g17f915d29d0c #1 [ 9436.262141][ C4] Имя оборудования: Qualcomm Technologies, Inc. (DT) [ 9436.262144][ C4] pstate: 22400085 (nzCv daIf +PAN -UAO +TCO BTYPE=--) [ 9436.262161][ C4] pc : expire_timers+0x9c/0x438 [ 9436.262164][ C4] lr : expire_timers+0x2a4/0x438 [ 9436.262168][ C4] sp : ffffffc010023dd0 [ 9436.262171][ C4] x29: ffffffc010023df0 x28: ffffffd0636fdc18 [ 9436.262178][ C4] x27: ffffffd063569dd0 x26: ffffffd063536008 [ 9436.262182][ C4] x25: 0000000000000001 x24: ffffff88f7c69280 [ 9436.262185][ C4] x23: 00000000000000e0 x22: dead000000000122 [ 9436.262188][ C4] x21: 000000010022da29 x20: ffffff8af72b4e80 [ 9436.262191][ C4] x19: ffffffc010023e50 x18: ffffffc010025038 [ 9436.262195][ C4] x17: 0000000000000240 x16: 0000000000000201 [ 9436.262199][ C4] x15: ffffffffffffffff x14: ffffff889f3c3100 [ 9436.262203][ C4] x13: ffffff889f3c3100 x12: 00000000049f56b8 [ 9436.262207][ C4] x11: 00000000049f56b8 x10: 00000000ffffffff [ 9436.262212][ C4] x9 : ffffffc010023e50 x8 : dead000000000122 [ 9436.262216][ C4] x7 : ffffffffffffffff x6 : ffffffc0100239d8 [ 9436.262220][ C4] x5 : 0000000000000000 x4 : 0000000000000101 [ 9436.262223][ C4] x3 : 0000000000000080 x2 : ffffff8 ---truncated---
CVE-2023-52493В ядре Linux устранена следующая уязвимость: bus: mhi: host: Удалите блокировку канала перед постановкой буферов в очередь. Убедитесь, что блокировки чтения и записи для канала не берутся последовательно, отбрасывая блокировку чтения из parse_xfer_event(), чтобы обратный вызов, предоставленный клиенту, мог потенциально ставить буферы в очередь и получать блокировку записи в этом процессе. Любая постановка буферов в очередь должна выполняться без полученной блокировки чтения канала, так как это может привести к множеству блокировок и программной блокировке. [mani: добавил тег fixes и cc'ed stable]
CVE-2021-47512В ядре Linux устранена следующая уязвимость: net/sched: fq_pie: предотвратить проблему разборки. По какой-то причине fq_pie_destroy() не скопировала рабочий код из pie_destroy() и других qdisc, что вызвало трудноуловимую ошибку. Перед вызовом del_timer_sync(&q->adapt_timer) необходимо убедиться, что таймер не перезапустится. rcu: INFO: rcu_preempt self-detected stall on CPU rcu: 0-....: (4416 ticks this GP) idle=60d/1/0x4000000000000000 softirq=10433/10434 fqs=2579 (t=10501 jiffies g=13085 q=3989) NMI backtrace for cpu 0 CPU: 0 PID: 13 Comm: ksoftirqd/0 Not tainted 5.16.0-rc4-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: <IRQ> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 nmi_cpu_backtrace.cold+0x47/0x144 lib/nmi_backtrace.c:111 nmi_trigger_cpumask_backtrace+0x1b3/0x230 lib/nmi_backtrace.c:62 trigger_single_cpu_backtrace include/linux/nmi.h:164 [inline] rcu_dump_cpu_stacks+0x25e/0x3f0 kernel/rcu/tree_stall.h:343 print_cpu_stall kernel/rcu/tree_stall.h:627 [inline] check_cpu_stall kernel/rcu/tree_stall.h:711 [inline] rcu_pending kernel/rcu/tree.c:3878 [inline] rcu_sched_clock_irq.cold+0x9d/0x746 kernel/rcu/tree.c:2597 update_process_times+0x16d/0x200 kernel/time/timer.c:1785 tick_sched_handle+0x9b/0x180 kernel/time/tick-sched.c:226 tick_sched_timer+0x1b0/0x2d0 kernel/time/tick-sched.c:1428 __run_hrtimer kernel/time/hrtimer.c:1685 [inline] __hrtimer_run_queues+0x1c0/0xe50 kernel/time/hrtimer.c:1749 hrtimer_interrupt+0x31c/0x790 kernel/time/hrtimer.c:1811 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1086 [inline] __sysvec_apic_timer_interrupt+0x146/0x530 arch/x86/kernel/apic/apic.c:1103 sysvec_apic_timer_interrupt+0x8e/0xc0 arch/x86/kernel/apic/apic.c:1097 </IRQ> <TASK> asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:638 RIP: 0010:write_comp_data kernel/kcov.c:221 [inline] RIP: 0010:__sanitizer_cov_trace_const_cmp1+0x1d/0x80 kernel/kcov.c:273 Code: 54 c8 20 48 89 10 c3 66 0f 1f 44 00 00 53 41 89 fb 41 89 f1 bf 03 00 00 00 65 48 8b 0c 25 40 70 02 00 48 89 ce 4c 8b 54 24 08 <e8> 4e f7 ff ff 84 c0 74 51 48 8b 81 88 15 00 00 44 8b 81 84 15 00 RSP: 0018:ffffc90000d27b28 EFLAGS: 00000246 RAX: 0000000000000000 RBX: ffff888064bf1bf0 RCX: ffff888011928000 RDX: ffff888011928000 RSI: ffff888011928000 RDI: 0000000000000003 RBP: ffff888064bf1c28 R08: 0000000000000000 R09: 0000000000000000 R10: ffffffff875d8295 R11: 0000000000000000 R12: 0000000000000000 R13: ffff8880783dd300 R14: 0000000000000000 R15: 0000000000000000 pie_calculate_probability+0x405/0x7c0 net/sched/sch_pie.c:418 fq_pie_timer+0x170/0x2a0 net/sched/sch_fq_pie.c:383 call_timer_fn+0x1a5/0x6b0 kernel/time/timer.c:1421 expire_timers kernel/time/timer.c:1466 [inline] __run_timers.part.0+0x675/0xa20 kernel/time/timer.c:1734 __run_timers kernel/time/timer.c:1715 [inline] run_timer_softirq+0xb3/0x1d0 kernel/time/timer.c:1747 __do_softirq+0x29b/0x9c2 kernel/softirq.c:558 run_ksoftirqd kernel/softirq.c:921 [inline] run_ksoftirqd+0x2d/0x60 kernel/softirq.c:913 smpboot_thread_fn+0x645/0x9c0 kernel/smpboot.c:164 kthread+0x405/0x4f0 kernel/kthread.c:327 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295 </TASK>
CVE-2024-26631В ядре Linux устранена следующая уязвимость: ipv6: mcast: исправление data-race в ipv6_mc_down / mld_ifc_work idev->mc_ifc_count может быть перезаписан без надлежащей блокировки. Первоначально обнаружено syzbot [1], исправьте эту проблему, заключив вызовы mld_ifc_stop_work() (и mld_gq_stop_work() для надежности) с mutex_lock() и mutex_unlock() соответственно, поскольку эти функции должны вызываться только с mc_lock в соответствии с их объявлениями. [1] BUG: KCSAN: data-race in ipv6_mc_down / mld_ifc_work запись в 0xffff88813a80c832 1 байта задачей 3771 на процессоре 0: mld_ifc_stop_work net/ipv6/mcast.c:1080 [inline] ipv6_mc_down+0x10a/0x280 net/ipv6/mcast.c:2725 addrconf_ifdown+0xe32/0xf10 net/ipv6/addrconf.c:3949 addrconf_notify+0x310/0x980 notifier_call_chain kernel/notifier.c:93 [inline] raw_notifier_call_chain+0x6b/0x1c0 kernel/notifier.c:461 __dev_notify_flags+0x205/0x3d0 dev_change_flags+0xab/0xd0 net/core/dev.c:8685 do_setlink+0x9f6/0x2430 net/core/rtnetlink.c:2916 rtnl_group_changelink net/core/rtnetlink.c:3458 [inline] __rtnl_newlink net/core/rtnetlink.c:3717 [inline] rtnl_newlink+0xbb3/0x1670 net/core/rtnetlink.c:3754 rtnetlink_rcv_msg+0x807/0x8c0 net/core/rtnetlink.c:6558 netlink_rcv_skb+0x126/0x220 net/netlink/af_netlink.c:2545 rtnetlink_rcv+0x1c/0x20 net/core/rtnetlink.c:6576 netlink_unicast_kernel net/netlink/af_netlink.c:1342 [inline] netlink_unicast+0x589/0x650 net/netlink/af_netlink.c:1368 netlink_sendmsg+0x66e/0x770 net/netlink/af_netlink.c:1910 ... запись в 0xffff88813a80c832 1 байта задачей 22 на процессоре 1: mld_ifc_work+0x54c/0x7b0 net/ipv6/mcast.c:2653 process_one_work kernel/workqueue.c:2627 [inline] process_scheduled_works+0x5b8/0xa30 kernel/workqueue.c:2700 worker_thread+0x525/0x730 kernel/workqueue.c:2781 ...