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

btrfs: fix block group refcount race in btrfs_create_pending_block_groups()

In the Linux kernel, the following vulnerability has been resolved: btrfs: fix block group refcount race in btrfs_create_pending_block_groups() Block group creation is done in two phases, which results in a slightly unintuitive property: a block group can be allocated/deallocated from after btrfs_make_block_group() adds it to the space_info with btrfs_add_bg_to_space_info(), but before creation is completely completed in btrfs_create_pending_block_groups(). As a result, it is possible for a block group to go unused and have 'btrfs_mark_bg_unused' called on it concurrently with 'btrfs_create_pending_block_groups'. This causes a number of issues, which were fixed with the block group flag 'BLOCK_GROUP_FLAG_NEW'. However, this fix is not quite complete. Since it does not use the unused_bg_lock, it is possible for the following race to occur: btrfs_create_pending_block_groups btrfs_mark_bg_unused if list_empty // false list_del_init clear_bit else if (test_bit) // true list_move_tail And we get into the exact same broken ref count and invalid new_bgs state for transaction cleanup that BLOCK_GROUP_FLAG_NEW was designed to prevent. The broken refcount aspect will result in a warning like: [1272.943527] refcount_t: underflow; use-after-free. [1272.943967] WARNING: CPU: 1 PID: 61 at lib/refcount.c:28 refcount_warn_saturate+0xba/0x110 [1272.944731] Modules linked in: btrfs virtio_net xor zstd_compress raid6_pq null_blk [last unloaded: btrfs] [1272.945550] CPU: 1 UID: 0 PID: 61 Comm: kworker/u32:1 Kdump: loaded Tainted: G W 6.14.0-rc5+ #108 [1272.946368] Tainted: [W]=WARN [1272.946585] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Arch Linux 1.16.3-1-1 04/01/2014 [1272.947273] Workqueue: btrfs_discard btrfs_discard_workfn [btrfs] [1272.947788] RIP: 0010:refcount_warn_saturate+0xba/0x110 [1272.949532] RSP: 0018:ffffbf1200247df0 EFLAGS: 00010282 [1272.949901] RAX: 0000000000000000 RBX: ffffa14b00e3f800 RCX: 0000000000000000 [1272.950437] RDX: 0000000000000000 RSI: ffffbf1200247c78 RDI: 00000000ffffdfff [1272.950986] RBP: ffffa14b00dc2860 R08: 00000000ffffdfff R09: ffffffff90526268 [1272.951512] R10: ffffffff904762c0 R11: 0000000063666572 R12: ffffa14b00dc28c0 [1272.952024] R13: 0000000000000000 R14: ffffa14b00dc2868 R15: 000001285dcd12c0 [1272.952850] FS: 0000000000000000(0000) GS:ffffa14d33c40000(0000) knlGS:0000000000000000 [1272.953458] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [1272.953931] CR2: 00007f838cbda000 CR3: 000000010104e000 CR4: 00000000000006f0 [1272.954474] Call Trace: [1272.954655] <TASK> [1272.954812] ? refcount_warn_saturate+0xba/0x110 [1272.955173] ? __warn.cold+0x93/0xd7 [1272.955487] ? refcount_warn_saturate+0xba/0x110 [1272.955816] ? report_bug+0xe7/0x120 [1272.956103] ? handle_bug+0x53/0x90 [1272.956424] ? exc_invalid_op+0x13/0x60 [1272.956700] ? asm_exc_invalid_op+0x16/0x20 [1272.957011] ? refcount_warn_saturate+0xba/0x110 [1272.957399] btrfs_discard_cancel_work.cold+0x26/0x2b [btrfs] [1272.957853] btrfs_put_block_group.cold+0x5d/0x8e [btrfs] [1272.958289] btrfs_discard_workfn+0x194/0x380 [btrfs] [1272.958729] process_one_work+0x130/0x290 [1272.959026] worker_thread+0x2ea/0x420 [1272.959335] ? __pfx_worker_thread+0x10/0x10 [1272.959644] kthread+0xd7/0x1c0 [1272.959872] ? __pfx_kthread+0x10/0x10 [1272.960172] ret_from_fork+0x30/0x50 [1272.960474] ? __pfx_kthread+0x10/0x10 [1272.960745] ret_from_fork_asm+0x1a/0x30 [1272.961035] </TASK> [1272.961238] ---[ end trace 0000000000000000 ]--- Though we have seen them in the async discard workfn as well. It is most likely to happen after a relocation finishes which cancels discard, tears down the block group, etc. Fix this fully by taking the lock arou ---truncated---

СредняяCVSS 4.7 · v3.1—Эксплойта нет Есть исправление
Опубликовано
16 апр. 2025 г.
Обновлено
5 авг. 2026 г.
EPSS
0,1 % · 3-й процентиль
Следить за этой CVE

Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.

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

JSON

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

18

Наблюдать

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

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

Оценка 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. Разрыв означает, что критичность спорна.

Анализ Noroxi

Анализа Noroxi для этой записи пока нет

Мы не пишем анализ вручную для сотен тысяч уязвимостей в базе; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.

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

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

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

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

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

  • linux linux kernel6.1.47 и новее · до 6.2
  • linux linux kernel6.4.12 и новее · до 6.5
  • linux linux kernel6.5.1 и новее · до 6.12.40
  • linux linux kernel6.13 и новее · до 6.14.2
  • linux linux kernel6.5

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

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

  • Linux Linux

    • 6297644db23f77c02ae7961cc542d162629ae2c4, 7569c4294ba6ff9f194635b14876198f8a687c4a, 6.5затронута
    • 0657b20c5a76c938612f8409735a8830d257866e и новее · до ee56da95f8962b86fec4ef93f866e64c8d025a58затронута · git
    • 0657b20c5a76c938612f8409735a8830d257866e и новее · до 9d383a6fc59271aaaf07a33b23b2eac5b9268b7aзатронута · git
    • 0657b20c5a76c938612f8409735a8830d257866e и новее · до 2d8e5168d48a91e7a802d3003e72afb4304bebfaзатронута · git
    • 6.1.47 и новее · до 6.2затронута · semver
    • 6.4.12 и новее · до 6.5затронута · semver
    • до 6.5не затронута · semver
    • 6.12.40 и новее · до 6.12.* включительноне затронута · semver
    • 6.14.2 и новее · до 6.14.* включительноне затронута · semver
    • 6.15 и новеене затронута · original_commit_for_fix

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

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

ЭкосистемаПакетЗатронутый диапазонИсправление
Debian:12linuxвсе версии—
Debian:13linuxдо 6.12.41-16.12.41-1
Debian:14linuxдо 6.16.3-16.16.3-1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6_Update_0до 19-150600.4.49.119-150600.4.49.1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6_Update_10до 2-150600.2.12-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6_Update_4до 13-150600.2.113-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6_Update_6до 8-150600.2.18-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6_Update_7до 8-150600.2.18-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6_Update_9до 3-150600.2.13-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6-RT_Update_0до 18-150600.3.118-150600.3.1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6-RT_Update_1до 17-150600.2.117-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6-RT_Update_10до 2-150600.2.12-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6-RT_Update_2до 13-150600.2.113-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6-RT_Update_3до 13-150600.2.113-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6-RT_Update_4до 12-150600.2.112-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6-RT_Update_5до 11-150600.2.111-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6-RT_Update_6до 8-150600.2.18-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6-RT_Update_7до 8-150600.2.18-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6-RT_Update_8до 3-150600.2.13-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6kernel-livepatch-SLE15-SP6-RT_Update_9до 3-150600.2.13-150600.2.1
SUSE:Linux Micro 6.0kernel-livepatch-MICRO-6-0_Update_2до 8-1.18-1.1
SUSE:Linux Micro 6.0kernel-livepatch-MICRO-6-0_Update_3до 8-1.28-1.2
SUSE:Linux Micro 6.0kernel-livepatch-MICRO-6-0_Update_4до 6-1.26-1.2
SUSE:Linux Micro 6.0kernel-livepatch-MICRO-6-0_Update_5до 4-1.24-1.2

+7

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

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 KEV
    89Срочно
  • CVE-2021-22555Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACEKEV
    85Срочно
  • 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 haKEV
    83Срочно
  • 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 creKEV
    77На этой неделе
  • 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 addKEV
    77На этой неделе
  • 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 loKEV
    77На этой неделе

Исправление

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

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

Продукт / пакетИсправленная версияИсточник
Linux Linux2d8e5168d48a91e7a802d3003e72afb4304bebfaВендор (CNA)
Linux Linux6.2Вендор (CNA)
Linux Linux6.5Вендор (CNA)
Linux Linux9d383a6fc59271aaaf07a33b23b2eac5b9268b7aВендор (CNA)
Linux Linuxee56da95f8962b86fec4ef93f866e64c8d025a58Вендор (CNA)
debian:linux6.12.41-1 · Debian:13Реестр пакетов (OSV)
suse:kernel-livepatch-SLE15-SP6_Update_68-150600.2.1 · SUSE:Linux Enterprise Live Patching 15 SP6Реестр пакетов (OSV)
suse:kernel-livepatch-SLE15-SP6_Update_78-150600.2.1 · SUSE:Linux Enterprise Live Patching 15 SP6Реестр пакетов (OSV)
suse:kernel-livepatch-SLE15-SP6-RT_Update_018-150600.3.1 · SUSE:Linux Enterprise Live Patching 15 SP6Реестр пакетов (OSV)
suse:kernel-livepatch-SLE15-SP6-RT_Update_117-150600.2.1 · SUSE:Linux Enterprise Live Patching 15 SP6Реестр пакетов (OSV)
suse:kernel-livepatch-SLE15-SP6-RT_Update_213-150600.2.1 · SUSE:Linux Enterprise Live Patching 15 SP6Реестр пакетов (OSV)
suse:kernel-livepatch-SLE15-SP6-RT_Update_313-150600.2.1 · SUSE:Linux Enterprise Live Patching 15 SP6Реестр пакетов (OSV)
suse:kernel-livepatch-SLE15-SP6-RT_Update_412-150600.2.1 · SUSE:Linux Enterprise Live Patching 15 SP6Реестр пакетов (OSV)
suse:kernel-livepatch-SLE15-SP6-RT_Update_511-150600.2.1 · SUSE:Linux Enterprise Live Patching 15 SP6Реестр пакетов (OSV)
suse:kernel-livepatch-SLE15-SP6-RT_Update_68-150600.2.1 · SUSE:Linux Enterprise Live Patching 15 SP6Реестр пакетов (OSV)
suse:kernel-livepatch-SLE15-SP6-RT_Update_78-150600.2.1 · SUSE:Linux Enterprise Live Patching 15 SP6Реестр пакетов (OSV)
suse:kernel-livepatch-SLE15-SP6-RT_Update_83-150600.2.1 · SUSE:Linux Enterprise Live Patching 15 SP6Реестр пакетов (OSV)
suse:kernel-livepatch-SLE15-SP6-RT_Update_93-150600.2.1 · SUSE:Linux Enterprise Live Patching 15 SP6Реестр пакетов (OSV)

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

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

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

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

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

Хронология

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

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

EPSS за 120 дней

Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).

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

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

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

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

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

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

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

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

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

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

—

Охват bug bounty

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

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

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

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

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

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

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

Вектор CVSS

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

nvd-primary

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

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

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

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

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

Источники

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

Все записи