Перейти к содержимому
Noroxi
NVD / CVE Program· CNA Linux

CVE-2021-46958: btrfs: fix race between transaction aborts and fsyncs leading to use-after-free

Оценка Noroxi

Приоритет: Наблюдать (оценка срочности 18/100)

  • В отслеживаемых источниках (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) нет публичного эксплойта или записей об эксплуатации.
  • Вероятность эксплуатации в ближайшие 30 дней: 0,24% (FIRST EPSS).
  • Может быть вызвана пользователем с локальным доступом к системе. Достаточно учётной записи с низкими привилегиями. Действия пользователя не требуются. Требуются особые условия, например определённое время или конфигурация.
  • Исправленная версия: Linux Linux 061dde8245356d8864d29e25207aa4daa0be4d3c, 633f7f216663587f17601eaa1cf2ac3d5654874c, a4794be7b00b7eda4b45fffd283ab7d76df7e5d6.
  • Критичность спорная: CNA оценивает в 7.8, NVD — в 4.7.
  • Упоминается в национальных бюллетенях кибербезопасности Турции (siberguvenlik.gov.tr): 1.

Пока низкий приоритет. Обновитесь до Linux Linux 061dde8245356d8864d29e25207aa4daa0be4d3c, 633f7f216663587f17601eaa1cf2ac3d5654874c, a4794be7b00b7eda4b45fffd283ab7d76df7e5d6 или новее.

Формируется автоматически по данным записи: CVSS (NVD и CNA), CISA KEV и SSVC, FIRST EPSS, источники эксплойтов, исправленные версии. Как мы считаем

Первоисточники: NVD · CVE.org · FIRST EPSS

In the Linux kernel, the following vulnerability has been resolved: btrfs: fix race between transaction aborts and fsyncs leading to use-after-free There is a race between a task aborting a transaction during a commit, a task doing an fsync and the transaction kthread, which leads to an use-after-free of the log root tree. When this happens, it results in a stack trace like the following: BTRFS info (device dm-0): forced readonly BTRFS warning (device dm-0): Skipping commit of aborted transaction. BTRFS: error (device dm-0) in cleanup_transaction:1958: errno=-5 IO failure BTRFS warning (device dm-0): lost page write due to IO error on /dev/mapper/error-test (-5) BTRFS warning (device dm-0): Skipping commit of aborted transaction. BTRFS warning (device dm-0): direct IO failed ino 261 rw 0,0 sector 0xa4e8 len 4096 err no 10 BTRFS error (device dm-0): error writing primary super block to device 1 BTRFS warning (device dm-0): direct IO failed ino 261 rw 0,0 sector 0x12e000 len 4096 err no 10 BTRFS warning (device dm-0): direct IO failed ino 261 rw 0,0 sector 0x12e008 len 4096 err no 10 BTRFS warning (device dm-0): direct IO failed ino 261 rw 0,0 sector 0x12e010 len 4096 err no 10 BTRFS: error (device dm-0) in write_all_supers:4110: errno=-5 IO failure (1 errors while writing supers) BTRFS: error (device dm-0) in btrfs_sync_log:3308: errno=-5 IO failure general protection fault, probably for non-canonical address 0x6b6b6b6b6b6b6b68: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC PTI CPU: 2 PID: 2458471 Comm: fsstress Not tainted 5.12.0-rc5-btrfs-next-84 #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014 RIP: 0010:__mutex_lock+0x139/0xa40 Code: c0 74 19 (...) RSP: 0018:ffff9f18830d7b00 EFLAGS: 00010202 RAX: 6b6b6b6b6b6b6b68 RBX: 0000000000000001 RCX: 0000000000000002 RDX: ffffffffb9c54d13 RSI: 0000000000000000 RDI: 0000000000000000 RBP: ffff9f18830d7bc0 R08: 0000000000000000 R09: 0000000000000000 R10: ffff9f18830d7be0 R11: 0000000000000001 R12: ffff8c6cd199c040 R13: ffff8c6c95821358 R14: 00000000fffffffb R15: ffff8c6cbcf01358 FS: 00007fa9140c2b80(0000) GS:ffff8c6fac600000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fa913d52000 CR3: 000000013d2b4003 CR4: 0000000000370ee0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: ? __btrfs_handle_fs_error+0xde/0x146 [btrfs] ? btrfs_sync_log+0x7c1/0xf20 [btrfs] ? btrfs_sync_log+0x7c1/0xf20 [btrfs] btrfs_sync_log+0x7c1/0xf20 [btrfs] btrfs_sync_file+0x40c/0x580 [btrfs] do_fsync+0x38/0x70 __x64_sys_fsync+0x10/0x20 do_syscall_64+0x33/0x80 entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7fa9142a55c3 Code: 8b 15 09 (...) RSP: 002b:00007fff26278d48 EFLAGS: 00000246 ORIG_RAX: 000000000000004a RAX: ffffffffffffffda RBX: 0000563c83cb4560 RCX: 00007fa9142a55c3 RDX: 00007fff26278cb0 RSI: 00007fff26278cb0 RDI: 0000000000000005 RBP: 0000000000000005 R08: 0000000000000001 R09: 00007fff26278d5c R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000340 R13: 00007fff26278de0 R14: 00007fff26278d96 R15: 0000563c83ca57c0 Modules linked in: btrfs dm_zero dm_snapshot dm_thin_pool (...) ---[ end trace ee2f1b19327d791d ]--- The steps that lead to this crash are the following: 1) We are at transaction N; 2) We have two tasks with a transaction handle attached to transaction N. Task A and Task B. Task B is doing an fsync; 3) Task B is at btrfs_sync_log(), and has saved fs_info->log_root_tree into a local variable named 'log_root_tree' at the top of btrfs_sync_log(). Task B is about to call write_all_supers(), but before that... 4) Task A calls btrfs_commit_transaction(), and after it sets the transaction state to TRANS_STATE_COMMIT_START, an error happens before it w ---truncated---

СредняяCVSS 4.7 · v3.1—Эксплойта нет Есть исправление
Опубликовано
27 февр. 2024 г.
Обновлено
5 авг. 2026 г.
EPSS
0,2 % · 15-й процентиль

Инструменты для отчёта

JSON

Оценка срочности

18

Наблюдать

Пока низкий приоритет.

CVSS
18 / 40 · 4.7 / 10
CISA KEV
0 / 30 · Нет в списке
EPSS
0 / 30 · 0,2 %

Решение CISA SSVC

Эксплуатация
нет
Автоматизируемо
нет
Техническое влияние
частичное

Vulnrichment: входные данные дерева решений CISA.

Оценка CNA и NVD

NVD
4,7
CNA · Linux
7,8
разница 3,1 балла

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.

Узнайте, когда запись изменится

  • Нет в KEV: эксплуатация в реальных атаках не зафиксирована
  • Публичного эксплойта нет
  • Исправление выпущено

Если что-то из этого изменится, сообщим в ежедневной сводке.

Следить за CVE-2021-46958

Когда мы напишем

  • когда запись попадёт в CISA KEV
  • когда появится или станет боевым эксплойт
  • когда запись обновится (в том числе исправленная версия)
  • когда EPSS вырастет на 20 пунктов за неделю

Одна сводка в день по почте (06:00 UTC); с вебхуком попадание в KEV и боевые эксплойты — сразу.

С бесплатным аккаунтом также

У вас WordPress? Проверьте сайт бесплатно в WP Lens

  • Оповещения по стеку: добавьте свои продукты и версии — новые CVE для них придут вам
  • Мониторинг сайта: 1 сайт, письмо сразу при недоступности
  • Добавьте домен: поддомены и риск захвата проверяются каждую неделю (1 домен)
  • 10 проверок в час в инструментах безопасности (без аккаунта — 3 в день), API-ключ и MCP
  • Все сканирования в одной панели: находки, изменения с прошлого сканирования, отчёт по домену или клиенту (PDF, ссылка для просмотра)
Все бесплатные инструменты

Регистрация по почте · Уже есть аккаунт? Войти

Бесплатный аккаунт, без карты. Отписаться можно в любой момент.

У вас WordPress? Проверьте сайт бесплатно в WP Lens

Затронута ли ваша версия? Проверьте

Анализ Noroxi

Что это значит для вашей инфраструктуры?

Оценка выше формируется автоматически по данным записи и не знает вашей среды. Наша команда проверит на ваших системах, действительно ли уязвимость эксплуатируема и какой меры достаточно.

Мы используем этот продукт, нужна помощь

Затронутые системы

Затронута ли ваша версия?

Выберите продукт и введите свою версию. Она сравнивается с диапазонами этой записи прямо в браузере и никуда не отправляется.

ВендорПродукт
linuxlinux kernel

Затронутые версии

Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.

  • linux linux kernel5.7 и новее · до 5.10.36
  • linux linux kernel5.11 и новее · до 5.11.20
  • linux linux kernel5.12 и новее · до 5.12.3

Версии, заявленные вендором

Диапазоны затронутых версий, заявленные назначающей организацией (Linux). Не зависят от анализа CPE в NVD и обычно опережают его.

  • Linux Linux

    • 5.7затронута
    • ef67963dac255b293e19815ea3d440567be4626f и новее · до a4794be7b00b7eda4b45fffd283ab7d76df7e5d6затронута · git
    • ef67963dac255b293e19815ea3d440567be4626f и новее · до 633f7f216663587f17601eaa1cf2ac3d5654874cзатронута · git
    • ef67963dac255b293e19815ea3d440567be4626f и новее · до e2da98788369bfba1138bada72765c47989a4338затронута · git
    • ef67963dac255b293e19815ea3d440567be4626f и новее · до 061dde8245356d8864d29e25207aa4daa0be4d3cзатронута · git
    • до 5.7не затронута · semver
    • 5.10.36 и новее · до 5.10.* включительноне затронута · semver
    • 5.11.20 и новее · до 5.11.* включительноне затронута · semver
    • 5.12.3 и новее · до 5.12.* включительноне затронута · semver
    • 5.13 и новеене затронута · original_commit_for_fix

Затронутые пакеты

Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.

ЭкосистемаПакетЗатронутый диапазонИсправление
Debian:12linuxдо 5.10.38-15.10.38-1
SUSE:Linux Enterprise High Availability Extension 12 SP5kernel-defaultдо 4.12.14-122.216.14.12.14-122.216.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSSkernel-default-baseдо 5.3.18-150200.24.188.1.150200.9.95.35.3.18-150200.24.188.1.150200.9.95.3
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSSkernel-docsдо 5.3.18-150200.24.188.15.3.18-150200.24.188.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSSkernel-obs-buildдо 5.3.18-150200.24.188.15.3.18-150200.24.188.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSSkernel-preemptдо 5.3.18-150200.24.188.15.3.18-150200.24.188.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSSkernel-sourceдо 5.3.18-150200.24.188.15.3.18-150200.24.188.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSSkernel-symsдо 5.3.18-150200.24.188.15.3.18-150200.24.188.1
SUSE:Linux Enterprise Live Patching 12 SP5kgraft-patch-SLE12-SP5_Update_56до 1-8.3.11-8.3.1
SUSE:Linux Enterprise Live Patching 15 SP2kernel-defaultдо 5.3.18-150200.24.188.15.3.18-150200.24.188.1
SUSE:Linux Enterprise Live Patching 15 SP2kernel-livepatch-SLE15-SP2_Update_47до 1-150200.5.3.31-150200.5.3.3
SUSE:Linux Enterprise Real Time 12 SP5kernel-rtдо 4.12.14-10.182.14.12.14-10.182.1
SUSE:Linux Enterprise Real Time 12 SP5kernel-rt_debugдо 4.12.14-10.182.14.12.14-10.182.1
SUSE:Linux Enterprise Real Time 12 SP5kernel-source-rtдо 4.12.14-10.182.14.12.14-10.182.1
SUSE:Linux Enterprise Real Time 12 SP5kernel-syms-rtдо 4.12.14-10.182.14.12.14-10.182.1
SUSE:Linux Enterprise Server 12 SP5kernel-azureдо 4.12.14-16.182.14.12.14-16.182.1
SUSE:Linux Enterprise Server 12 SP5kernel-sourceдо 4.12.14-122.216.14.12.14-122.216.1
SUSE:Linux Enterprise Server 12 SP5kernel-source-azureдо 4.12.14-16.182.14.12.14-16.182.1
SUSE:Linux Enterprise Server 12 SP5kernel-symsдо 4.12.14-122.216.14.12.14-122.216.1
SUSE:Linux Enterprise Server 12 SP5kernel-syms-azureдо 4.12.14-16.182.14.12.14-16.182.1
SUSE:Linux Enterprise Software Development Kit 12 SP5kernel-docsдо 4.12.14-122.216.14.12.14-122.216.1
SUSE:Linux Enterprise Software Development Kit 12 SP5kernel-obs-buildдо 4.12.14-122.216.14.12.14-122.216.1

Тот же продукт

linux: все записи

Другие записи с наивысшей оценкой для того же основного продукта.

  • CVE-2026-31431crypto: algif_aead - Revert to operating out-of-placeKEV
    90Срочно
  • 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 KEV
    89Срочно
  • CVE-2021-22555Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACEKEV
    85Срочно

Опубликованы до и после этой записи в том же продукте

  • ← РаньшеCVE-2021-4695627 февр. 2024 г. · virtiofs: fix memory leak in virtio_fs_probe()
    22Наблюдать
  • ← РаньшеCVE-2021-4695727 февр. 2024 г. · riscv/kprobe: fix kernel panic when invoking sys_read traced by kprobe
    22Наблюдать
  • Позже →CVE-2021-4696027 февр. 2024 г. · cifs: Return correct error code from smb2_get_enc_key
    22Наблюдать

Исправление

На какую версию обновиться

Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.

Продукт / пакетИсправленная версияИсточник
Linux Linux061dde8245356d8864d29e25207aa4daa0be4d3cВендор (CNA)
Linux Linux633f7f216663587f17601eaa1cf2ac3d5654874cВендор (CNA)
Linux Linuxa4794be7b00b7eda4b45fffd283ab7d76df7e5d6Вендор (CNA)
Linux Linuxe2da98788369bfba1138bada72765c47989a4338Вендор (CNA)
debian:linux5.10.38-1 · Debian:12Реестр пакетов (OSV)
suse:kernel-azure4.12.14-16.182.1 · SUSE:Linux Enterprise Server 12 SP5Реестр пакетов (OSV)
suse:kernel-default5.3.18-150200.24.188.1 · SUSE:Linux Enterprise Live Patching 15 SP2Реестр пакетов (OSV)
suse:kernel-default-base5.3.18-150200.24.188.1.150200.9.95.3 · SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSSРеестр пакетов (OSV)
suse:kernel-docs5.3.18-150200.24.188.1 · SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSSРеестр пакетов (OSV)
suse:kernel-livepatch-SLE15-SP2_Update_471-150200.5.3.3 · SUSE:Linux Enterprise Live Patching 15 SP2Реестр пакетов (OSV)
suse:kernel-obs-build5.3.18-150200.24.188.1 · SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSSРеестр пакетов (OSV)
suse:kernel-preempt5.3.18-150200.24.188.1 · SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSSРеестр пакетов (OSV)
suse:kernel-rt4.12.14-10.182.1 · SUSE:Linux Enterprise Real Time 12 SP5Реестр пакетов (OSV)
suse:kernel-source5.3.18-150200.24.188.1 · SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSSРеестр пакетов (OSV)
suse:kernel-source-azure4.12.14-16.182.1 · SUSE:Linux Enterprise Server 12 SP5Реестр пакетов (OSV)
suse:kernel-syms5.3.18-150200.24.188.1 · SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSSРеестр пакетов (OSV)
suse:kernel-syms-azure4.12.14-16.182.1 · SUSE:Linux Enterprise Server 12 SP5Реестр пакетов (OSV)

Статус эксплойта

Публичный эксплойт неизвестен

Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.

Контекст для исследователя

Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.

Хронология

От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.

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

Истории пока нет (накапливается ежедневным заданием EPSS).

Ссылки на патчи и коммиты

Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.

Среди источников нет ссылок на коммит или PR.

Нашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.

В записи CNA нет авторов.

Кандидаты в варианты

Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.

Ночной расчёт связей ничего не нашёл.

Кандидаты в цепочки

Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.

—

Охват bug bounty

Известной публичной программы нет.

Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).

Национальное уведомление (Управление кибербезопасности Турции / USOM)

Официальные уведомления, ссылающиеся на эту запись; рекомендации — на странице ведомства.

Все национальные уведомления →

Технические детали

Условия атаки

  • Может быть вызвана пользователем с локальным доступом к системе.
  • Достаточно учётной записи с низкими привилегиями.
  • Действия пользователя не требуются.
  • Требуются особые условия, например определённое время или конфигурация.

В случае успеха

Конфиденциальность
нет
Целостность
нет
Доступность
высокое · работа сервиса может быть нарушена
Вектор атаки
Локальный
Сложность атаки
Высокая
Требуемые привилегии
Низкие
Взаимодействие с пользователем
Не требуется
Область действия
Не изменяется
Влияние на конфиденциальность
Нет
Влияние на целостность
Нет
Влияние на доступность
Высокое

Класс уязвимости (CWE)

CWE-416 · Use After Free

Вектор CVSS

CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H

nvd-primary

Первопричина

После освобождения области памяти продолжает использоваться другая ссылка на неё. К этому моменту та же область может быть выделена под другие данные.

Ошибка в коде

Весь класс CWE-416

Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.

Уязвимый код

c
free(dev->buf);/* ... другой поток всё ещё работает ... */process(dev->buf);

Исправленный код

c
lock(&dev->lock);free(dev->buf);dev->buf = NULL;unlock(&dev->lock);

Контекст атаки

Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.

У MITRE нет сопоставления CAPEC/ATT&CK для этого CWE.

Журнал изменений

  1. Исправление✗ → ✓

Для отслеживаемых записей эти изменения приходят и как уведомления. →

Источники

Показать все источники (ещё 3)

Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.

Все записи