bcache: fix NULL pointer in cache_set_flush()
In the Linux kernel, the following vulnerability has been resolved: bcache: fix NULL pointer in cache_set_flush() 1. LINE#1794 - LINE#1887 is some codes about function of bch_cache_set_alloc(). 2. LINE#2078 - LINE#2142 is some codes about function of register_cache_set(). 3. register_cache_set() will call bch_cache_set_alloc() in LINE#2098. 1794 struct cache_set *bch_cache_set_alloc(struct cache_sb *sb) 1795 { ... 1860 if (!(c->devices = kcalloc(c->nr_uuids, sizeof(void *), GFP_KERNEL)) || 1861 mempool_init_slab_pool(&c->search, 32, bch_search_cache) || 1862 mempool_init_kmalloc_pool(&c->bio_meta, 2, 1863 sizeof(struct bbio) + sizeof(struct bio_vec) * 1864 bucket_pages(c)) || 1865 mempool_init_kmalloc_pool(&c->fill_iter, 1, iter_size) || 1866 bioset_init(&c->bio_split, 4, offsetof(struct bbio, bio), 1867 BIOSET_NEED_BVECS|BIOSET_NEED_RESCUER) || 1868 !(c->uuids = alloc_bucket_pages(GFP_KERNEL, c)) || 1869 !(c->moving_gc_wq = alloc_workqueue("bcache_gc", 1870 WQ_MEM_RECLAIM, 0)) || 1871 bch_journal_alloc(c) || 1872 bch_btree_cache_alloc(c) || 1873 bch_open_buckets_alloc(c) || 1874 bch_bset_sort_state_init(&c->sort, ilog2(c->btree_pages))) 1875 goto err; ^^^^^^^^ 1876 ... 1883 return c; 1884 err: 1885 bch_cache_set_unregister(c); ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1886 return NULL; 1887 } ... 2078 static const char *register_cache_set(struct cache *ca) 2079 { ... 2098 c = bch_cache_set_alloc(&ca->sb); 2099 if (!c) 2100 return err; ^^^^^^^^^^ ... 2128 ca->set = c; 2129 ca->set->cache[ca->sb.nr_this_dev] = ca; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... 2138 return NULL; 2139 err: 2140 bch_cache_set_unregister(c); 2141 return err; 2142 } (1) If LINE#1860 - LINE#1874 is true, then do 'goto err'(LINE#1875) and call bch_cache_set_unregister()(LINE#1885). (2) As (1) return NULL(LINE#1886), LINE#2098 - LINE#2100 would return. (3) As (2) has returned, LINE#2128 - LINE#2129 would do *not* give the value to c->cache[], it means that c->cache[] is NULL. LINE#1624 - LINE#1665 is some codes about function of cache_set_flush(). As (1), in LINE#1885 call bch_cache_set_unregister() ---> bch_cache_set_stop() ---> closure_queue() -.-> cache_set_flush() (as below LINE#1624) 1624 static void cache_set_flush(struct closure *cl) 1625 { ... 1654 for_each_cache(ca, c, i) 1655 if (ca->alloc_thread) ^^ 1656 kthread_stop(ca->alloc_thread); ... 1665 } (4) In LINE#1655 ca is NULL(see (3)) in cache_set_flush() then the kernel crash occurred as below: [ 846.712887] bcache: register_cache() error drbd6: cannot allocate memory [ 846.713242] bcache: register_bcache() error : failed to register device [ 846.713336] bcache: cache_set_free() Cache set 2f84bdc1-498a-4f2f-98a7-01946bf54287 unregistered [ 846.713768] BUG: unable to handle kernel NULL pointer dereference at 00000000000009f8 [ 846.714790] PGD 0 P4D 0 [ 846.715129] Oops: 0000 [#1] SMP PTI [ 846.715472] CPU: 19 PID: 5057 Comm: kworker/19:16 Kdump: loaded Tainted: G OE --------- - - 4.18.0-147.5.1.el8_1.5es.3.x86_64 #1 [ 846.716082] Hardware name: ESPAN GI-25212/X11DPL-i, BIOS 2.1 06/15/2018 [ 846.716451] Workqueue: events cache_set_flush [bcache] [ 846.716808] RIP: 0010:cache_set_flush+0xc9/0x1b0 [bcache] [ 846.717155] Code: 00 4c 89 a5 b0 03 00 00 48 8b 85 68 f6 ff ff a8 08 0f 84 88 00 00 00 31 db 66 83 bd 3c f7 ff ff 00 48 8b 85 48 ff ff ff 74 28 <48> 8b b8 f8 09 00 0 ---truncated---
- Опубликовано
- 9 июл. 2025 г.
- Обновлено
- 17 июн. 2026 г.
- EPSS
- 0,2 % · 5-й процентиль
- CWE
- CWE-476
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
22
Наблюдать
Пока низкий приоритет.
- CVSS
- 22 / 40 · 5.5 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 0 / 30 · 0,2 %
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для сотен тысяч уязвимостей в базе; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощьЗатронутые системы
| Вендор | Продукт | CPE |
|---|---|---|
| linux | linux kernel | cpe:2.3:o:linux:linux_kernel |
| debian | debian linux | cpe:2.3:o:debian:debian_linux |
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- debian debian linux11.0
- linux linux kernel5.11 и новее · до 5.15.187
- linux linux kernel5.16 и новее · до 6.1.143
- linux linux kernel3.10 и новее · до 5.10.240
- linux linux kernel6.7 и новее · до 6.12.36
- linux linux kernel6.13 и новее · до 6.15.5
- linux linux kernel6.2 и новее · до 6.6.96
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (Linux). Не зависят от анализа CPE в NVD и обычно опережают его.
Linux Linux
- 3.10затронута
- cafe563591446cf80bfbc2fe3bc72a2e36cf1060 и новее · до d54681938b777488e5dfb781b566d16adad991deзатронута · git
- cafe563591446cf80bfbc2fe3bc72a2e36cf1060 и новее · до 1f25f2d3fa29325320c19a30abf787e0bd5fc91bзатронута · git
- cafe563591446cf80bfbc2fe3bc72a2e36cf1060 и новее · до c4f5e7e417034b05f5d2f5fa9a872db897da69bdзатронута · git
- cafe563591446cf80bfbc2fe3bc72a2e36cf1060 и новее · до 553f560e0a74a7008ad9dba05c3fd05da296befbзатронута · git
- cafe563591446cf80bfbc2fe3bc72a2e36cf1060 и новее · до 667c3f52373ff5354cb3543e27237eb7df7b2333затронута · git
- cafe563591446cf80bfbc2fe3bc72a2e36cf1060 и новее · до 3f9e128186c99a117e304f1dce6d0b9e50c63cd8затронута · git
- cafe563591446cf80bfbc2fe3bc72a2e36cf1060 и новее · до 1e46ed947ec658f89f1a910d880cd05e42d3763eзатронута · git
- до 3.10не затронута · semver
- 5.10.240 и новее · до 5.10.* включительноне затронута · semver
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| Debian:12 | linux | до 6.1.147-1 | 6.1.147-1 |
| Debian:13 | linux | до 6.12.37-1 | 6.12.37-1 |
| SUSE:Linux Enterprise Live Patching 15 SP7 | kernel-livepatch-SLE15-SP7_Update_5 | до 1-150700.15.3.1 | 1-150700.15.3.1 |
| SUSE:Linux Enterprise Live Patching 15 SP7 | kernel-livepatch-SLE15-SP7-RT_Update_5 | до 1-150700.1.3.1 | 1-150700.1.3.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | kernel-64kb | до 6.4.0-150700.53.19.1 | 6.4.0-150700.53.19.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | kernel-default | до 6.4.0-150700.53.19.1 | 6.4.0-150700.53.19.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | kernel-default-base | до 6.4.0-150700.53.19.1.150700.17.13.1 | 6.4.0-150700.53.19.1.150700.17.13.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | kernel-source | до 6.4.0-150700.53.19.1 | 6.4.0-150700.53.19.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | kernel-zfcpdump | до 6.4.0-150700.53.19.1 | 6.4.0-150700.53.19.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP7 | kernel-docs | до 6.4.0-150700.53.19.1 | 6.4.0-150700.53.19.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP7 | kernel-obs-build | до 6.4.0-150700.53.19.1 | 6.4.0-150700.53.19.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP7 | kernel-syms | до 6.4.0-150700.53.19.1 | 6.4.0-150700.53.19.1 |
| SUSE:Real Time Module 15 SP7 | kernel-rt | до 6.4.0-150700.7.19.1 | 6.4.0-150700.7.19.1 |
| SUSE:Real Time Module 15 SP7 | kernel-source-rt | до 6.4.0-150700.7.19.1 | 6.4.0-150700.7.19.1 |
| SUSE:Real Time Module 15 SP7 | kernel-syms-rt | до 6.4.0-150700.7.19.1 | 6.4.0-150700.7.19.1 |
Тот же продукт
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 | 1e46ed947ec658f89f1a910d880cd05e42d3763e | Вендор (CNA) |
| Linux Linux | 1f25f2d3fa29325320c19a30abf787e0bd5fc91b | Вендор (CNA) |
| Linux Linux | 3f9e128186c99a117e304f1dce6d0b9e50c63cd8 | Вендор (CNA) |
| Linux Linux | 553f560e0a74a7008ad9dba05c3fd05da296befb | Вендор (CNA) |
| Linux Linux | 667c3f52373ff5354cb3543e27237eb7df7b2333 | Вендор (CNA) |
| Linux Linux | c4f5e7e417034b05f5d2f5fa9a872db897da69bd | Вендор (CNA) |
| Linux Linux | d54681938b777488e5dfb781b566d16adad991de | Вендор (CNA) |
| azl3 kernel 6.6.92.2-2 on Azure Linux 3.0 | 6.6.96.1-1 · CBL-Mariner Releases | Microsoft (MSRC) |
| debian:linux | 6.1.147-1 · Debian:12 | Реестр пакетов (OSV) |
| suse:kernel-64kb | 6.4.0-150700.53.19.1 · SUSE:Linux Enterprise Module for Basesystem 15 SP7 | Реестр пакетов (OSV) |
| suse:kernel-default | 6.4.0-150700.53.19.1 · SUSE:Linux Enterprise Module for Basesystem 15 SP7 | Реестр пакетов (OSV) |
| suse:kernel-default-base | 6.4.0-150700.53.19.1.150700.17.13.1 · SUSE:Linux Enterprise Module for Basesystem 15 SP7 | Реестр пакетов (OSV) |
| suse:kernel-docs | 6.4.0-150700.53.19.1 · SUSE:Linux Enterprise Module for Development Tools 15 SP7 | Реестр пакетов (OSV) |
| suse:kernel-livepatch-SLE15-SP7_Update_5 | 1-150700.15.3.1 · SUSE:Linux Enterprise Live Patching 15 SP7 | Реестр пакетов (OSV) |
| suse:kernel-livepatch-SLE15-SP7-RT_Update_5 | 1-150700.1.3.1 · SUSE:Linux Enterprise Live Patching 15 SP7 | Реестр пакетов (OSV) |
| suse:kernel-obs-build | 6.4.0-150700.53.19.1 · SUSE:Linux Enterprise Module for Development Tools 15 SP7 | Реестр пакетов (OSV) |
| suse:kernel-rt | 6.4.0-150700.7.19.1 · SUSE:Real Time Module 15 SP7 | Реестр пакетов (OSV) |
| suse:kernel-source | 6.4.0-150700.53.19.1 · SUSE:Linux Enterprise Module for Basesystem 15 SP7 | Реестр пакетов (OSV) |
| suse:kernel-source-rt | 6.4.0-150700.7.19.1 · SUSE:Real Time Module 15 SP7 | Реестр пакетов (OSV) |
| suse:kernel-syms | 6.4.0-150700.53.19.1 · SUSE:Linux Enterprise Module for Development Tools 15 SP7 | Реестр пакетов (OSV) |
| suse:kernel-zfcpdump | 6.4.0-150700.53.19.1 · SUSE:Linux Enterprise Module for Basesystem 15 SP7 | Реестр пакетов (OSV) |
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Среди источников нет ссылок на коммит или PR.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
Ночной расчёт связей ничего не нашёл.
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
- Может быть вызвана пользователем с локальным доступом к системе.
- Достаточно учётной записи с низкими привилегиями.
- Действия пользователя не требуются.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- нет
- Целостность
- нет
- Доступность
- высокое · работа сервиса может быть нарушена
- Вектор атаки
- Локальный
- Сложность атаки
- Низкая
- Требуемые привилегии
- Низкие
- Взаимодействие с пользователем
- Не требуется
- Область действия
- Не изменяется
- Влияние на конфиденциальность
- Нет
- Влияние на целостность
- Нет
- Влияние на доступность
- Высокое
Класс уязвимости (CWE)
CWE-476 · NULL Pointer DereferenceВектор CVSS
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
nvd-primary
Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
У MITRE нет сопоставления CAPEC/ATT&CK для этого CWE.
Журнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
- git.kernel.org/stable/c/1e46ed947ec658f89f1a910d880cd05e42d3763e
- git.kernel.org/stable/c/1f25f2d3fa29325320c19a30abf787e0bd5fc91b
- git.kernel.org/stable/c/3f9e128186c99a117e304f1dce6d0b9e50c63cd8
- git.kernel.org/stable/c/553f560e0a74a7008ad9dba05c3fd05da296befb
- git.kernel.org/stable/c/667c3f52373ff5354cb3543e27237eb7df7b2333
- git.kernel.org/stable/c/c4f5e7e417034b05f5d2f5fa9a872db897da69bd
- git.kernel.org/stable/c/d54681938b777488e5dfb781b566d16adad991de
- lists.debian.org/debian-lts-announce/2025/10/msg00007.html
- lists.debian.org/debian-lts-announce/2025/10/msg00008.html
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.