cifs: fix double free race when mount fails in cifs_get_root()
In the Linux kernel, the following vulnerability has been resolved: cifs: fix double free race when mount fails in cifs_get_root() When cifs_get_root() fails during cifs_smb3_do_mount() we call deactivate_locked_super() which eventually will call delayed_free() which will free the context. In this situation we should not proceed to enter the out: section in cifs_smb3_do_mount() and free the same resources a second time. [Thu Feb 10 12:59:06 2022] BUG: KASAN: use-after-free in rcu_cblist_dequeue+0x32/0x60 [Thu Feb 10 12:59:06 2022] Read of size 8 at addr ffff888364f4d110 by task swapper/1/0 [Thu Feb 10 12:59:06 2022] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G OE 5.17.0-rc3+ #4 [Thu Feb 10 12:59:06 2022] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v4.0 12/17/2019 [Thu Feb 10 12:59:06 2022] Call Trace: [Thu Feb 10 12:59:06 2022] <IRQ> [Thu Feb 10 12:59:06 2022] dump_stack_lvl+0x5d/0x78 [Thu Feb 10 12:59:06 2022] print_address_description.constprop.0+0x24/0x150 [Thu Feb 10 12:59:06 2022] ? rcu_cblist_dequeue+0x32/0x60 [Thu Feb 10 12:59:06 2022] kasan_report.cold+0x7d/0x117 [Thu Feb 10 12:59:06 2022] ? rcu_cblist_dequeue+0x32/0x60 [Thu Feb 10 12:59:06 2022] __asan_load8+0x86/0xa0 [Thu Feb 10 12:59:06 2022] rcu_cblist_dequeue+0x32/0x60 [Thu Feb 10 12:59:06 2022] rcu_core+0x547/0xca0 [Thu Feb 10 12:59:06 2022] ? call_rcu+0x3c0/0x3c0 [Thu Feb 10 12:59:06 2022] ? __this_cpu_preempt_check+0x13/0x20 [Thu Feb 10 12:59:06 2022] ? lock_is_held_type+0xea/0x140 [Thu Feb 10 12:59:06 2022] rcu_core_si+0xe/0x10 [Thu Feb 10 12:59:06 2022] __do_softirq+0x1d4/0x67b [Thu Feb 10 12:59:06 2022] __irq_exit_rcu+0x100/0x150 [Thu Feb 10 12:59:06 2022] irq_exit_rcu+0xe/0x30 [Thu Feb 10 12:59:06 2022] sysvec_hyperv_stimer0+0x9d/0xc0 ... [Thu Feb 10 12:59:07 2022] Freed by task 58179: [Thu Feb 10 12:59:07 2022] kasan_save_stack+0x26/0x50 [Thu Feb 10 12:59:07 2022] kasan_set_track+0x25/0x30 [Thu Feb 10 12:59:07 2022] kasan_set_free_info+0x24/0x40 [Thu Feb 10 12:59:07 2022] ____kasan_slab_free+0x137/0x170 [Thu Feb 10 12:59:07 2022] __kasan_slab_free+0x12/0x20 [Thu Feb 10 12:59:07 2022] slab_free_freelist_hook+0xb3/0x1d0 [Thu Feb 10 12:59:07 2022] kfree+0xcd/0x520 [Thu Feb 10 12:59:07 2022] cifs_smb3_do_mount+0x149/0xbe0 [cifs] [Thu Feb 10 12:59:07 2022] smb3_get_tree+0x1a0/0x2e0 [cifs] [Thu Feb 10 12:59:07 2022] vfs_get_tree+0x52/0x140 [Thu Feb 10 12:59:07 2022] path_mount+0x635/0x10c0 [Thu Feb 10 12:59:07 2022] __x64_sys_mount+0x1bf/0x210 [Thu Feb 10 12:59:07 2022] do_syscall_64+0x5c/0xc0 [Thu Feb 10 12:59:07 2022] entry_SYSCALL_64_after_hwframe+0x44/0xae [Thu Feb 10 12:59:07 2022] Last potentially related work creation: [Thu Feb 10 12:59:07 2022] kasan_save_stack+0x26/0x50 [Thu Feb 10 12:59:07 2022] __kasan_record_aux_stack+0xb6/0xc0 [Thu Feb 10 12:59:07 2022] kasan_record_aux_stack_noalloc+0xb/0x10 [Thu Feb 10 12:59:07 2022] call_rcu+0x76/0x3c0 [Thu Feb 10 12:59:07 2022] cifs_umount+0xce/0xe0 [cifs] [Thu Feb 10 12:59:07 2022] cifs_kill_sb+0xc8/0xe0 [cifs] [Thu Feb 10 12:59:07 2022] deactivate_locked_super+0x5d/0xd0 [Thu Feb 10 12:59:07 2022] cifs_smb3_do_mount+0xab9/0xbe0 [cifs] [Thu Feb 10 12:59:07 2022] smb3_get_tree+0x1a0/0x2e0 [cifs] [Thu Feb 10 12:59:07 2022] vfs_get_tree+0x52/0x140 [Thu Feb 10 12:59:07 2022] path_mount+0x635/0x10c0 [Thu Feb 10 12:59:07 2022] __x64_sys_mount+0x1bf/0x210 [Thu Feb 10 12:59:07 2022] do_syscall_64+0x5c/0xc0 [Thu Feb 10 12:59:07 2022] entry_SYSCALL_64_after_hwframe+0x44/0xae
- Опубликовано
- 21 авг. 2024 г.
- Обновлено
- 5 авг. 2026 г.
- EPSS
- 0,5 % · 38-й процентиль
- CWE
- CWE-415
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
31
Наблюдать
Пока низкий приоритет.
- CVSS
- 31 / 40 · 7.8 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 0 / 30 · 0,5 %
Решение CISA SSVC
- Эксплуатация
- нет
- Автоматизируемо
- нет
- Техническое влияние
- частичное
Vulnrichment: входные данные дерева решений CISA.
Оценка CNA и NVD
- NVD
- 7,8
- CNA · Linux
- 8,8
- разница 1,0 балла
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для сотен тысяч уязвимостей в базе; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощьЗатронутые системы
| Вендор | Продукт | CPE |
|---|---|---|
| linux | linux kernel | cpe:2.3:o:linux:linux_kernel |
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- linux linux kernelдо 4.9.305
- linux linux kernel4.10 и новее · до 4.14.270
- linux linux kernel4.15 и новее · до 4.19.233
- linux linux kernel4.20 и новее · до 5.4.183
- linux linux kernel5.5 и новее · до 5.10.104
- linux linux kernel5.11 и новее · до 5.15.27
- linux linux kernel5.16 и новее · до 5.16.13
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (Linux). Не зависят от анализа CPE в NVD и обычно опережают его.
Linux Linux
- 5.11затронута
- d17abdf7566566fc402c31899b353044a7ff3cf4 и новее · до 546d60859ecf13380fcabcbeace53a5971493a2bзатронута · git
- d17abdf7566566fc402c31899b353044a7ff3cf4 и новее · до 563431c1f3c8f2230e4a9c445fa23758742bc4f0затронута · git
- d17abdf7566566fc402c31899b353044a7ff3cf4 и новее · до 3d6cc9898efdfb062efb74dc18cfc700e082f5d5затронута · git
- до 5.11не затронута · semver
- 5.15.27 и новее · до 5.15.* включительноне затронута · semver
- 5.16.13 и новее · до 5.16.* включительноне затронута · semver
- 5.17 и новеене затронута · original_commit_for_fix
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| AlmaLinux:8 | bpftool | до 4.18.0-553.58.1.el8_10 | 4.18.0-553.58.1.el8_10 |
| AlmaLinux:8 | kernel | до 4.18.0-553.58.1.el8_10 | 4.18.0-553.58.1.el8_10 |
| AlmaLinux:8 | kernel-abi-stablelists | до 4.18.0-553.58.1.el8_10 | 4.18.0-553.58.1.el8_10 |
| AlmaLinux:8 | kernel-core | до 4.18.0-553.58.1.el8_10 | 4.18.0-553.58.1.el8_10 |
| AlmaLinux:8 | kernel-cross-headers | до 4.18.0-553.58.1.el8_10 | 4.18.0-553.58.1.el8_10 |
| AlmaLinux:8 | kernel-debug | до 4.18.0-553.58.1.el8_10 | 4.18.0-553.58.1.el8_10 |
| AlmaLinux:8 | kernel-debug-core | до 4.18.0-553.58.1.el8_10 | 4.18.0-553.58.1.el8_10 |
| AlmaLinux:8 | kernel-debug-devel | до 4.18.0-553.58.1.el8_10 | 4.18.0-553.58.1.el8_10 |
| AlmaLinux:8 | kernel-debug-modules | до 4.18.0-553.58.1.el8_10 | 4.18.0-553.58.1.el8_10 |
| AlmaLinux:8 | kernel-debug-modules-extra | до 4.18.0-553.58.1.el8_10 | 4.18.0-553.58.1.el8_10 |
| AlmaLinux:8 | kernel-devel | до 4.18.0-553.58.1.el8_10 | 4.18.0-553.58.1.el8_10 |
| AlmaLinux:8 | kernel-doc | до 4.18.0-553.58.1.el8_10 | 4.18.0-553.58.1.el8_10 |
| AlmaLinux:8 | kernel-headers | до 4.18.0-553.58.1.el8_10 | 4.18.0-553.58.1.el8_10 |
| AlmaLinux:8 | kernel-modules | до 4.18.0-553.58.1.el8_10 | 4.18.0-553.58.1.el8_10 |
| AlmaLinux:8 | kernel-modules-extra | до 4.18.0-553.58.1.el8_10 | 4.18.0-553.58.1.el8_10 |
| AlmaLinux:8 | kernel-rt | до 4.18.0-553.58.1.rt7.399.el8_10 | 4.18.0-553.58.1.rt7.399.el8_10 |
| AlmaLinux:8 | kernel-rt-core | до 4.18.0-553.58.1.rt7.399.el8_10 | 4.18.0-553.58.1.rt7.399.el8_10 |
| AlmaLinux:8 | kernel-rt-debug | до 4.18.0-553.58.1.rt7.399.el8_10 | 4.18.0-553.58.1.rt7.399.el8_10 |
| AlmaLinux:8 | kernel-rt-debug-core | до 4.18.0-553.58.1.rt7.399.el8_10 | 4.18.0-553.58.1.rt7.399.el8_10 |
| AlmaLinux:8 | kernel-rt-debug-devel | до 4.18.0-553.58.1.rt7.399.el8_10 | 4.18.0-553.58.1.rt7.399.el8_10 |
| AlmaLinux:8 | kernel-rt-debug-modules | до 4.18.0-553.58.1.rt7.399.el8_10 | 4.18.0-553.58.1.rt7.399.el8_10 |
| AlmaLinux:8 | kernel-rt-debug-modules-extra | до 4.18.0-553.58.1.rt7.399.el8_10 | 4.18.0-553.58.1.rt7.399.el8_10 |
| AlmaLinux:8 | kernel-rt-devel | до 4.18.0-553.58.1.rt7.399.el8_10 | 4.18.0-553.58.1.rt7.399.el8_10 |
| AlmaLinux:8 | kernel-rt-modules | до 4.18.0-553.58.1.rt7.399.el8_10 | 4.18.0-553.58.1.rt7.399.el8_10 |
+90
Тот же продукт
linux: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2022-0847A flaw was found in the way the "flags" member of the new pipe buffer structure was lacking proper initialization in copy_page_to_iter_pipe KEV89Срочно
- CVE-2021-22555Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACEKEV85Срочно
- CVE-2016-5195Race condition in mm/gup.c in the Linux kernel 2.x through 4.x before 4.8.3 allows local users to gain privileges by leveraging incorrect haKEV83Срочно
- CVE-2019-13272In the Linux kernel before 5.1.17, ptrace_link in kernel/ptrace.c mishandles the recording of the credentials of a process that wants to creKEV77На этой неделе
- CVE-2013-6282The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the v6k and v7 ARM platforms do not validate certain addKEV77На этой неделе
- CVE-2013-2094The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9 uses an incorrect integer data type, which allows loKEV77На этой неделе
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| Linux Linux | 3d6cc9898efdfb062efb74dc18cfc700e082f5d5 | Вендор (CNA) |
| Linux Linux | 546d60859ecf13380fcabcbeace53a5971493a2b | Вендор (CNA) |
| Linux Linux | 563431c1f3c8f2230e4a9c445fa23758742bc4f0 | Вендор (CNA) |
| almalinux:bpftool | 4.18.0-553.58.1.el8_10 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:kernel | 4.18.0-553.58.1.el8_10 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:kernel-abi-stablelists | 4.18.0-553.58.1.el8_10 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:kernel-core | 4.18.0-553.58.1.el8_10 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:kernel-cross-headers | 4.18.0-553.58.1.el8_10 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:kernel-debug | 4.18.0-553.58.1.el8_10 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:kernel-debug-core | 4.18.0-553.58.1.el8_10 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:kernel-debug-devel | 4.18.0-553.58.1.el8_10 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:kernel-debug-modules | 4.18.0-553.58.1.el8_10 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:kernel-debug-modules-extra | 4.18.0-553.58.1.el8_10 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:kernel-devel | 4.18.0-553.58.1.el8_10 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:kernel-doc | 4.18.0-553.58.1.el8_10 · AlmaLinux:8 | Реестр пакетов (OSV) |
| debian:linux | 5.16.14-1 · Debian:12 | Реестр пакетов (OSV) |
| red hat:bpftool | 0:4.18.0-553.58.1.el8_10 · Red Hat:enterprise_linux:8::baseos | Реестр пакетов (OSV) |
| red hat:bpftool-debuginfo | 0:4.18.0-553.58.1.el8_10 · Red Hat:enterprise_linux:8::baseos | Реестр пакетов (OSV) |
| red hat:kernel | 0:4.18.0-553.58.1.el8_10 · Red Hat:enterprise_linux:8::baseos | Реестр пакетов (OSV) |
| red hat:kernel-abi-stablelists | 0:4.18.0-553.58.1.el8_10 · Red Hat:enterprise_linux:8::baseos | Реестр пакетов (OSV) |
| red hat:kernel-core | 0:4.18.0-553.58.1.el8_10 · Red Hat:enterprise_linux:8::baseos | Реестр пакетов (OSV) |
| red hat:kernel-debug | 0:4.18.0-553.58.1.el8_10 · Red Hat:enterprise_linux:8::baseos | Реестр пакетов (OSV) |
| red hat:kernel-debug-core | 0:4.18.0-553.58.1.el8_10 · Red Hat:enterprise_linux:8::baseos | Реестр пакетов (OSV) |
| red hat:kernel-debug-debuginfo | 0:4.18.0-553.58.1.el8_10 · Red Hat:enterprise_linux:8::baseos | Реестр пакетов (OSV) |
| red hat:kernel-debug-devel | 0:4.18.0-553.58.1.el8_10 · Red Hat:enterprise_linux:8::baseos | Реестр пакетов (OSV) |
| red hat:kernel-debug-modules | 0:4.18.0-553.58.1.el8_10 · Red Hat:enterprise_linux:8::baseos | Реестр пакетов (OSV) |
| red hat:kernel-debug-modules-extra | 0:4.18.0-553.58.1.el8_10 · Red Hat:enterprise_linux:8::baseos | Реестр пакетов (OSV) |
| red hat:kernel-debuginfo | 0:4.18.0-553.58.1.el8_10 · Red Hat:enterprise_linux:8::baseos | Реестр пакетов (OSV) |
| rocky linux:kernel | 0:4.18.0-553.58.1.el8_10 · Rocky Linux:8 | Реестр пакетов (OSV) |
| rocky linux:kernel-rt | 0:4.18.0-553.58.1.rt7.399.el8_10 · Rocky Linux:8 | Реестр пакетов (OSV) |
+12
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Среди источников нет ссылок на коммит или PR.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
- CVE-2024-35814с разницей 96 дн.swiotlb: Fix double-allocation of slots due to broken alignment handling35Наблюдать
- CVE-2022-48892с разницей 0 дн.sched/core: Fix use-after-free bug in dup_user_cpus_ptr()31Наблюдать
- CVE-2024-42138с разницей 22 дн.mlxsw: core_linecards: Fix double memory deallocation in case of invalid INI file31Наблюдать
- CVE-2024-42147с разницей 22 дн.crypto: hisilicon/debugfs - Fix debugfs uninit process issue31Наблюдать
- CVE-2024-41046с разницей 23 дн.net: ethernet: lantiq_etop: fix double free in detach31Наблюдать
- CVE-2024-46687с разницей 23 дн.btrfs: fix a use-after-free when hitting errors inside btrfs_submit_chunk()31Наблюдать
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
- Может быть вызвана пользователем с локальным доступом к системе.
- Достаточно учётной записи с низкими привилегиями.
- Действия пользователя не требуются.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- высокое · данные могут быть прочитаны
- Целостность
- высокое · данные или конфигурация могут быть изменены
- Доступность
- высокое · работа сервиса может быть нарушена
- Вектор атаки
- Локальный
- Сложность атаки
- Низкая
- Требуемые привилегии
- Низкие
- Взаимодействие с пользователем
- Не требуется
- Область действия
- Не изменяется
- Влияние на конфиденциальность
- Высокое
- Влияние на целостность
- Высокое
- Влияние на доступность
- Высокое
Класс уязвимости (CWE)
CWE-415 · Double FreeВектор CVSS
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
nvd-primary
Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
У MITRE нет сопоставления CAPEC/ATT&CK для этого CWE.
Журнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
- git.kernel.org/stable/c/3d6cc9898efdfb062efb74dc18cfc700e082f5d5
- git.kernel.org/stable/c/546d60859ecf13380fcabcbeace53a5971493a2b
- git.kernel.org/stable/c/563431c1f3c8f2230e4a9c445fa23758742bc4f0
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.