CWE-366БазаЧерновик
Состояние гонки внутри потока
Если два потока выполнения одновременно используют ресурс, существует вероятность использования ресурсов в недопустимом состоянии, что в свою очередь приводит к неопределённому состоянию выполнения.
Открыть в каталоге с фильтром CWE →Связанные CAPEC
Связанные уязвимости
CVE-2025-58143В коде viridian обнаружены множественные проблемы, связанные с обработкой и доступом к страницам памяти гостевой системы:
1. NULL-указатель разыменования при обновлении области ссылок TSC. Это CVE-2025-27466.
2. NULL-указатель разыменования при предположении, что страница SIM отображена, когда необходимо доставить синтетическое сообщение таймера. Это CVE-2025-58142.
3. Гонка при отображении страницы ссылок TSC, когда гость может заставить Xen освободить страницу, все еще присутствующую в таблицах страниц гостевой физической машины (p2m). Это CVE-2025-58143 [1].
Источники:
- [1] https://xenbits.xenproject.org/xsa/advisory-472.html
CVE-2025-31115XZ Utils предоставляет библиотеку сжатия данных общего назначения и инструменты командной строки. В XZ Utils 5.3.3alpha до 5.8.0, многопоточный .xz декодер в liblzma имеет ошибку, при которой недопустимый ввод может как минимум привести к сбою. Последствия включают использование кучи после освобождения и запись по адресу, основанному на нулевом указателе плюс смещение. Приложения и библиотеки, использующие функцию lzma_stream_decoder_mt, затрагиваются. Ошибка была исправлена в XZ Utils 5.8.1, и исправление было включено в ветки v5.4, v5.6, v5.8 и master в репозитории xz Git. Новые пакеты сборки не будут создаваться из старых стабильных веток, но доступно независимое исправление, которое применимо ко всем затронутым версиям.
CVE-2021-39686В нескольких функциях binder.c есть способ представления неверного домена SELinux из-за состояния гонки. Это может привести к локальной эскалации привилегий без каких-либо дополнительных прав на выполнение. Для эксплуатации не требуется взаимодействие с пользователем. Продукт: Android. Версии: ядро Android. Android ID: A-200688826. Ссылки: Upstream kernel.
CVE-2021-26569Состояние гонки в потоке в iscsi_snapshot_comm_core в Synology DiskStation Manager (DSM) до 6.2.3-25426-3 позволяет удаленным злоумышленникам выполнять произвольный код через созданные веб-запросы.
CVE-2015-10067В oznetmaster SSharpSmartThreadPool была обнаружена уязвимость, классифицированная как проблематичная. Это затрагивает неизвестную часть файла SSharpSmartThreadPool/SmartThreadPool.cs. Манипуляция приводит к состоянию гонки в потоке. Сложность атаки довольно высока. Эксплуатируемость считается затруднительной. Патч называется 0e58073c831093aad75e077962e9fb55cad0dc5f. Рекомендуется применить патч для исправления этой проблемы. Связанный идентификатор этой уязвимости — VDB-218463.
CVE-2022-1729Обнаружено состояние гонки в ядре Linux в perf_event_open(), которое может быть использовано непривилегированным пользователем для получения привилегий root. Ошибка позволяет создавать несколько примитивов эксплойтов, таких как утечка информации об адресе ядра, произвольное выполнение и т. д.
CVE-2024-10630Состояние гонки в Ivanti Application Control Engine до версии 10.14.4.0 позволяет локальному аутентифицированному злоумышленнику обойти функциональность блокировки приложений.
CVE-2023-6546В GSM 0710 tty multiplexor в ядре Linux обнаружено состояние гонки. Эта проблема возникает, когда два потока выполняют ioctl GSMIOC_SETCONF на одном и том же файловом дескрипторе tty с включенной дисциплиной линии gsm, и может привести к проблеме использования после освобождения в struct gsm_dlci при перезапуске gsm mux. Это может позволить локальному непривилегированному пользователю повысить свои привилегии в системе.
CVE-2026-3904Вызов функций, поддерживаемых NSS, которые поддерживают кэширование через nscd, может вызвать
nscd клиентский код и в GNU C Library версии 2.36 под высоким
нагрузка на x86_64 системы, клиент может вызвать memcmp на входах, которые
Одновременно модифицируется другими процессами или потоками и сбоев.
Клиент nscd в библиотеке GNU C использует функцию memcmp с
входные данные, которые могут быть одновременно изменены другим потоком, потенциально
приводит к ложительным кэш-промашинам, что само по себе не является обеспечением безопасности
проблема. Однако в GNU C Library версия 2.36 оптимизированная
реализация memcmp была введена для x86_64, которая может разбиться
когда на них ссылаются с таким неопределенным поведением, превращая это в
потенциальный сбой клиента НСС и приложения, которое его использует.
Эта реализация была доставлена в филиал 2.35, что делает НСД
клиент в этом филиале также уязвим. Впоследствии исправление для
этот вопрос был доведен до всех уязвимых отраслей в GNU C
Репозиторий библиотеки.
Рекомендуется, что дистрибутивы, которые, возможно, выбирали memcpy
SSE2 оптимизация в их копии библиотеки GNU C, также применяйте исправление
чтобы избежать потенциального сбоя в nscd клиенте.
CVE-2026-23684Уязвимость расового состояния существует в облаке SAP Commerce. Из-за этого, когда злоумышленник добавляет продукты в тележку, это может привести к созданию входа в тележку с ошибочной ценностью продукта, которая может быть проверена. Это приводит к высокому влиянию на целостность данных, не влияя на конфиденциальность данных или доступность приложения.
CVE-2023-4127Состояние гонки в потоке в репозитории GitHub answerdev/answer до версии v1.1.1.
CVE-2020-1629Уязвимость состояния гонки на устройствах Juniper Network Junos OS может привести к сбою и перезапуску процесса демона протокола маршрутизации (RPD) во время обработки сообщения BGP NOTIFICATION. Эта проблема затрагивает Juniper Networks Junos OS: версии 16.1 до 16.1R7-S6; версии 16.2 до 16.2R2-S11; версии 17.1 до 17.1R2-S11, 17.1R3-S1; версии 17.2 до 17.2R1-S9, 17.2R3-S3; версия 17.2 17.2R2 и более поздние версии; версии 17.2X75 до 17.2X75-D105, 17.2X75-D110; версии 17.3 до 17.3R2-S5, 17.3R3-S6; версии 17.4 до 17.4R2-S7, 17.4R3; версии 18.1 до 18.1R3-S8; версии 18.2 до 18.2R3-S3; версии 18.2X75 до 18.2X75-D410, 18.2X75-D420, 18.2X75-D50, 18.2X75-D60; версии 18.3 до 18.3R1-S5, 18.3R2-S2, 18.3R3; версии 18.4 до 18.4R2-S2, 18.4R3; версии 19.1 до 19.1R1-S2, 19.1R2; версии 19.2 до 19.2R1-S4, 19.2R2. Эта проблема не затрагивает Juniper Networks Junos OS до версии 16.1R1.
CVE-2024-26798В ядре Linux устранена следующая уязвимость:
fbcon: всегда восстанавливать старые данные шрифта в fbcon_do_set_font()
Коммит a5a923038d70 (fbdev: fbcon: Правильно откатывать изменения при сбое vc_resize()) начал восстанавливать старые данные шрифта при сбое (vc_resize()). Но он выполняет это только для пользовательских шрифтов. Это означает, что «системные»/внутренние шрифты вообще не восстанавливаются. Таким образом, в результате, самый первый вызов fbcon_do_set_font() вообще не выполняет восстановление при сбое vc_resize().
Это можно воспроизвести с помощью Syzkaller, чтобы вызвать сбой системы при следующем вызове font_get(). Довольно сложно столкнуться со сбоем выделения в vc_resize() при первом font_set(), но не невозможно. Особенно, если для облегчения выполнения/сбоя используется инъекция ошибок. Это было продемонстрировано Sirius:
BUG: unable to handle page fault for address: fffffffffffffff8
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD cb7b067 P4D cb7b067 PUD cb7d067 PMD 0
Oops: 0000 [#1] PREEMPT SMP KASAN
CPU: 1 PID: 8007 Comm: poc Not tainted 6.7.0-g9d1694dc91ce #20
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
RIP: 0010:fbcon_get_font+0x229/0x800 drivers/video/fbdev/core/fbcon.c:2286
Call Trace:
<TASK>
con_font_get drivers/tty/vt/vt.c:4558 [inline]
con_font_op+0x1fc/0xf20 drivers/tty/vt/vt.c:4673
vt_k_ioctl drivers/tty/vt/vt_ioctl.c:474 [inline]
vt_ioctl+0x632/0x2ec0 drivers/tty/vt/vt_ioctl.c:752
tty_ioctl+0x6f8/0x1570 drivers/tty/tty_io.c:2803
vfs_ioctl fs/ioctl.c:51 [inline]
...
Поэтому восстанавливайте данные шрифта в любом случае, а не только для пользовательских шрифтов. Обратите внимание, что более позднее «if» теперь защищено «old_userfont», а не «old_data», поскольку последнее всегда установлено сейчас. (И предполагается, что оно не NULL. В противном случае мы снова увидим ошибку выше.)
CVE-2024-26796В ядре Linux устранена следующая уязвимость:
drivers: perf: функция ctr_get_width для legacy не определена
С параметрами CONFIG_RISCV_PMU_LEGACY=y и CONFIG_RISCV_PMU_SBI=n ядро Linux падает при попытке perf record:
$ perf record ls
[ 46.749286] Невозможно обработать разыменование нулевого указателя ядра по виртуальному адресу 0000000000000000
[ 46.750199] Oops [#1]
[ 46.750342] Связанные модули:
[ 46.750608] CPU: 0 PID: 107 Comm: perf-exec Not tainted 6.6.0 #2
[ 46.750906] Имя оборудования: riscv-virtio,qemu (DT)
[ 46.751184] epc : 0x0
[ 46.751430] ra : arch_perf_update_userpage+0x54/0x13e
[ 46.751680] epc : 0000000000000000 ra : ffffffff8072ee52 sp : ff2000000022b8f0
[ 46.751958] gp : ffffffff81505988 tp : ff6000000290d400 t0 : ff2000000022b9c0
[ 46.752229] t1 : 0000000000000001 t2 : 0000000000000003 s0 : ff2000000022b930
[ 46.752451] s1 : ff600000028fb000 a0 : 0000000000000000 a1 : ff600000028fb000
[ 46.752673] a2 : 0000000ae2751268 a3 : 00000000004fb708 a4 : 0000000000000004
[ 46.752895] a5 : 0000000000000000 a6 : 000000000017ffe3 a7 : 00000000000000d2
[ 46.753117] s2 : ff600000028fb000 s3 : 0000000ae2751268 s4 : 0000000000000000
[ 46.753338] s5 : ffffffff8153e290 s6 : ff600000863b9000 s7 : ff60000002961078
[ 46.753562] s8 : ff60000002961048 s9 : ff60000002961058 s10: 0000000000000001
[ 46.753783] s11: 0000000000000018 t3 : ffffffffffffffff t4 : ffffffffffffffff
[ 46.754005] t5 : ff6000000292270c t6 : ff2000000022bb30
[ 46.754179] status: 0000000200000100 badaddr: 0000000000000000 cause: 000000000000000c
[ 46.754653] Code: Невозможно получить доступ к инструкции по адресу 0xffffffffffffffec.
[ 46.754939] ---[ end trace 0000000000000000 ]---
[ 46.755131] note: perf-exec[107] exited with irqs disabled
[ 46.755546] note: perf-exec[107] exited with preempt_count 4
Это происходит потому, что в устаревшем случае функция ctr_get_width не была определена, но она используется в arch_perf_update_userpage.
Также удалите дополнительную проверку в riscv_pmu_ctr_get_width_mask.
CVE-2024-26794В ядре Linux устранена следующая уязвимость:
btrfs: исправление гонки между завершением упорядоченного экстента и fiemap
Для fiemap мы недавно прекратили блокировку целевого диапазона экстента на все время вызова fiemap, чтобы избежать взаимоблокировки в сценарии, когда буфер fiemap оказывается диапазоном памяти, отображенным в ту же файл. Этот вариант использования очень маловероятен на практике, но он может быть вызван фаззинг-тестированием (syzbot и т. д.).
Однако, не блокируя целевой диапазон экстента на все время вызова fiemap, мы можем столкнуться с гонкой с упорядоченным экстентом. Это происходит следующим образом:
1) Задача fiemap завершает обработку элемента экстента файла, который охватывает диапазон файла [512K, 1M[, и этот элемент экстента файла является последним элементом в обрабатываемом в данный момент листе;
2) И упорядоченный экстент для диапазона файла [768K, 2M[, в режиме COW, завершается (btrfs_finish_one_ordered()), и элемент экстента файла, охватывающий диапазон [512K, 1M[, обрезается, чтобы охватить диапазон [512K, 768K[, а затем новый элемент экстента файла для диапазона [768K, 2M[ вставляется в подтом дерева inode;
3) Задача fiemap вызывает fiemap_next_leaf_item(), которая затем вызывает btrfs_next_leaf() для поиска следующего листа / элемента. Это обнаруживает, что следующий ключ после того, который мы обработали ранее (его тип BTRFS_EXTENT_DATA_KEY и его смещение 512K), является ключом, соответствующим новому элементу экстента файла, вставленному упорядоченным экстентом, который имеет тип BTRFS_EXTENT_DATA_KEY и смещение 768K;
4) Позже код fiemap заканчивается в emit_fiemap_extent() и вызывает предупреждение:
if (cache->offset + cache->len > offset) {
WARN_ON(1);
return -EINVAL;
}
Поскольку мы получаем 1M > 768K, потому что ранее выданная запись для старого экстента, охватывающего диапазон файла [512K, 1M[, заканчивается смещением, которое больше, чем начальное смещение нового экстента (768K). Это приводит к сбою fiemap с -EINVAL, помимо запуска предупреждения, которое создает трассировку стека, подобную следующей:
[1621.677651] ------------[ cut here ]------------
[1621.677656] WARNING: CPU: 1 PID: 204366 at fs/btrfs/extent_io.c:2492 emit_fiemap_extent+0x84/0x90 [btrfs]
[1621.677899] Modules linked in: btrfs blake2b_generic (...)
[1621.677951] CPU: 1 PID: 204366 Comm: pool Not tainted 6.8.0-rc5-btrfs-next-151+ #1
[1621.677954] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014
[1621.677956] RIP: 0010:emit_fiemap_extent+0x84/0x90 [btrfs]
[1621.678033] Code: 2b 4c 89 63 (...)
[1621.678035] RSP: 0018:ffffab16089ffd20 EFLAGS: 00010206
[1621.678037] RAX: 00000000004fa000 RBX: ffffab16089ffe08 RCX: 0000000000009000
[1621.678039] RDX: 00000000004f9000 RSI: 00000000004f1000 RDI: ffffab16089ffe90
[1621.678040] RBP: 00000000004f9000 R08: 0000000000001000 R09: 0000000000000000
[1621.678041] R10: 0000000000000000 R11: 0000000000001000 R12: 0000000041d78000
[1621.678043] R13: 0000000000001000 R14: 0000000000000000 R15: ffff9434f0b17850
[1621.678044] FS: 00007fa6e20006c0(0000) GS:ffff943bdfa40000(0000) knlGS:0000000000000000
[1621.678046] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[1621.678048] CR2: 00007fa6b0801000 CR3: 000000012d404002 CR4: 0000000000370ef0
[1621.678053] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[1621.678055] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[1621.678056] Call Trace:
[1621.678074] <TASK>
[1621.678076] ? __warn+0x80/0x130
[1621.678082] ? emit_fiemap_extent+0x84/0x90 [btrfs]
[1621.678159] ? report_bug+0x1f4/0x200
[1621.678164] ? handle_bug+0x42/0x70
[1621.678167] ? exc_invalid_op+0x14/0x70
[1621.678170] ? asm_exc_invalid_op+0x16/0x20
[1621.678178] ? emit_fiemap_extent+0x84/0x90 [btrfs]
[1621.678253] extent_fiemap+0x766
---truncated---