CVE-2024-58088: bpf: Fix deadlock when freeing cgroup storage
Оценка Noroxi
Приоритет: Наблюдать (оценка срочности 22/100)
- В отслеживаемых источниках (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) нет публичного эксплойта или записей об эксплуатации.
- Вероятность эксплуатации в ближайшие 30 дней: 0,18% (FIRST EPSS).
- Может быть вызвана пользователем с локальным доступом к системе. Достаточно учётной записи с низкими привилегиями. Действия пользователя не требуются. Особые условия не требуются; воспроизводится стабильно.
- Исправленная версия: Linux Linux 6ecb9fa14eec5f15d97c84c36896871335f6ddfb, c78f4afbd962f43a3989f45f3ca04300252b19b5, fac674d2bd68f3479f27328626b42d1eebd11fef; azl3 kernel 6.6.78.1-3 on Azure Linux 3.0 6.6.82.1-1; azl3 kernel 6.6.82.1-1 on Azure Linux 3.0 6.6.82.1-1.
Пока низкий приоритет. Обновитесь до Linux Linux 6ecb9fa14eec5f15d97c84c36896871335f6ddfb, c78f4afbd962f43a3989f45f3ca04300252b19b5, fac674d2bd68f3479f27328626b42d1eebd11fef; azl3 kernel 6.6.78.1-3 on Azure Linux 3.0 6.6.82.1-1; azl3 kernel 6.6.82.1-1 on Azure Linux 3.0 6.6.82.1-1 или новее.
Формируется автоматически по данным записи: CVSS (NVD и CNA), CISA KEV и SSVC, FIRST EPSS, источники эксплойтов, исправленные версии. Как мы считаем
Первоисточники: NVD · CVE.org · FIRST EPSS
In the Linux kernel, the following vulnerability has been resolved: bpf: Fix deadlock when freeing cgroup storage The following commit bc235cdb423a ("bpf: Prevent deadlock from recursive bpf_task_storage_[get|delete]") first introduced deadlock prevention for fentry/fexit programs attaching on bpf_task_storage helpers. That commit also employed the logic in map free path in its v6 version. Later bpf_cgrp_storage was first introduced in c4bcfb38a95e ("bpf: Implement cgroup storage available to non-cgroup-attached bpf progs") which faces the same issue as bpf_task_storage, instead of its busy counter, NULL was passed to bpf_local_storage_map_free() which opened a window to cause deadlock: <TASK> (acquiring local_storage->lock) _raw_spin_lock_irqsave+0x3d/0x50 bpf_local_storage_update+0xd1/0x460 bpf_cgrp_storage_get+0x109/0x130 bpf_prog_a4d4a370ba857314_cgrp_ptr+0x139/0x170 ? __bpf_prog_enter_recur+0x16/0x80 bpf_trampoline_6442485186+0x43/0xa4 cgroup_storage_ptr+0x9/0x20 (holding local_storage->lock) bpf_selem_unlink_storage_nolock.constprop.0+0x135/0x160 bpf_selem_unlink_storage+0x6f/0x110 bpf_local_storage_map_free+0xa2/0x110 bpf_map_free_deferred+0x5b/0x90 process_one_work+0x17c/0x390 worker_thread+0x251/0x360 kthread+0xd2/0x100 ret_from_fork+0x34/0x50 ret_from_fork_asm+0x1a/0x30 </TASK> Progs: - A: SEC("fentry/cgroup_storage_ptr") - cgid (BPF_MAP_TYPE_HASH) Record the id of the cgroup the current task belonging to in this hash map, using the address of the cgroup as the map key. - cgrpa (BPF_MAP_TYPE_CGRP_STORAGE) If current task is a kworker, lookup the above hash map using function parameter @owner as the key to get its corresponding cgroup id which is then used to get a trusted pointer to the cgroup through bpf_cgroup_from_id(). This trusted pointer can then be passed to bpf_cgrp_storage_get() to finally trigger the deadlock issue. - B: SEC("tp_btf/sys_enter") - cgrpb (BPF_MAP_TYPE_CGRP_STORAGE) The only purpose of this prog is to fill Prog A's hash map by calling bpf_cgrp_storage_get() for as many userspace tasks as possible. Steps to reproduce: - Run A; - while (true) { Run B; Destroy B; } Fix this issue by passing its busy counter to the free procedure so it can be properly incremented before storage/smap locking.
- Опубликовано
- 12 мар. 2025 г.
- Обновлено
- 17 июн. 2026 г.
- EPSS
- 0,1 % · 7-й процентиль
- CWE
- CWE-667
Инструменты для отчёта
Оценка срочности
22
Пока низкий приоритет.
- CVSS
- 22 / 40 · 5.5 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 0 / 30 · 0,1 %
Решение CISA SSVC
- Эксплуатация
- нет
- Автоматизируемо
- нет
- Техническое влияние
- частичное
Vulnrichment: входные данные дерева решений CISA.
Узнайте, когда запись изменится
- Нет в KEV: эксплуатация в реальных атаках не зафиксирована
- Публичного эксплойта нет
- Исправление выпущено
Если что-то из этого изменится, сообщим в ежедневной сводке.
Затронута ли ваша версия? ПроверьтеАнализ Noroxi
Что это значит для вашей инфраструктуры?
Оценка выше формируется автоматически по данным записи и не знает вашей среды. Наша команда проверит на ваших системах, действительно ли уязвимость эксплуатируема и какой меры достаточно.
Мы используем этот продукт, нужна помощьЗатронутые системы
Затронута ли ваша версия?
Выберите продукт и введите свою версию. Она сравнивается с диапазонами этой записи прямо в браузере и никуда не отправляется.
| Вендор | Продукт | CPE |
|---|---|---|
| linux | linux kernel | cpe:2.3:o:linux:linux_kernel |
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (Linux). Не зависят от анализа CPE в NVD и обычно опережают его.
Linux Linux
- 6.2затронута
- c4bcfb38a95edb1021a53f2d0356a78120ecfbe4 и новее · до 6ecb9fa14eec5f15d97c84c36896871335f6ddfbзатронута · git
- c4bcfb38a95edb1021a53f2d0356a78120ecfbe4 и новее · до fac674d2bd68f3479f27328626b42d1eebd11fefзатронута · git
- c4bcfb38a95edb1021a53f2d0356a78120ecfbe4 и новее · до fcec95b4ab3e7bc6b2f36e5d59f7e24104ea87f7затронута · git
- c4bcfb38a95edb1021a53f2d0356a78120ecfbe4 и новее · до c78f4afbd962f43a3989f45f3ca04300252b19b5затронута · git
- до 6.2не затронута · semver
- 6.6.80 и новее · до 6.6.* включительноне затронута · semver
- 6.12.17 и новее · до 6.12.* включительноне затронута · semver
- 6.13.5 и новее · до 6.13.* включительноне затронута · semver
- 6.14 и новеене затронута · original_commit_for_fix
Затронутые версии · NVD (4)
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- linux linux kernel6.2 и новее · до 6.6.80
- linux linux kernel6.7 и новее · до 6.12.17
- linux linux kernel6.13 и новее · до 6.13.5
- linux linux kernel6.14
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| Debian:13 | linux | до 6.12.17-1 | 6.12.17-1 |
| SUSE:Linux Micro 6.0 | kernel-default | до 6.4.0-29.1 | 6.4.0-29.1 |
| SUSE:Linux Micro 6.0 | kernel-default-base | до 6.4.0-29.1.21.7 | 6.4.0-29.1.21.7 |
| SUSE:Linux Micro 6.0 | kernel-kvmsmall | до 6.4.0-29.1 | 6.4.0-29.1 |
| SUSE:Linux Micro 6.0 | kernel-livepatch-MICRO-6-0_Update_7 | до 1-1.2 | 1-1.2 |
| SUSE:Linux Micro 6.0 | kernel-livepatch-MICRO-6-0-RT_Update_8 | до 1-1.2 | 1-1.2 |
| SUSE:Linux Micro 6.0 | kernel-rt | до 6.4.0-31.1 | 6.4.0-31.1 |
| SUSE:Linux Micro 6.0 | kernel-source | до 6.4.0-29.1 | 6.4.0-29.1 |
| SUSE:Linux Micro 6.0 | kernel-source-rt | до 6.4.0-31.1 | 6.4.0-31.1 |
Тот же продукт
linux: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2026-31431crypto: algif_aead - Revert to operating out-of-placeKEV90Срочно
- 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-2025-218397 мар. 2025 г. · KVM: x86: Load DR6 with guest value only before entering .vcpu_run() loop22Наблюдать
- ← РаньшеCVE-2024-5808712 мар. 2025 г. · ksmbd: fix racy issue from session lookup and expire32Наблюдать
- Позже →CVE-2024-5808912 мар. 2025 г. · btrfs: fix double accounting race when btrfs_run_delalloc_range() failed22Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| Linux Linux | 6ecb9fa14eec5f15d97c84c36896871335f6ddfb | Вендор (CNA) |
| Linux Linux | c78f4afbd962f43a3989f45f3ca04300252b19b5 | Вендор (CNA) |
| Linux Linux | fac674d2bd68f3479f27328626b42d1eebd11fef | Вендор (CNA) |
| Linux Linux | fcec95b4ab3e7bc6b2f36e5d59f7e24104ea87f7 | Вендор (CNA) |
| azl3 kernel 6.6.78.1-3 on Azure Linux 3.0 | 6.6.82.1-1 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 kernel 6.6.82.1-1 on Azure Linux 3.0 | 6.6.82.1-1 · CBL-Mariner Releases | Microsoft (MSRC) |
| debian:linux | 6.12.17-1 · Debian:13 | Реестр пакетов (OSV) |
| suse:kernel-default | 6.4.0-29.1 · SUSE:Linux Micro 6.0 | Реестр пакетов (OSV) |
| suse:kernel-default-base | 6.4.0-29.1.21.7 · SUSE:Linux Micro 6.0 | Реестр пакетов (OSV) |
| suse:kernel-kvmsmall | 6.4.0-29.1 · SUSE:Linux Micro 6.0 | Реестр пакетов (OSV) |
| suse:kernel-livepatch-MICRO-6-0_Update_7 | 1-1.2 · SUSE:Linux Micro 6.0 | Реестр пакетов (OSV) |
| suse:kernel-livepatch-MICRO-6-0-RT_Update_8 | 1-1.2 · SUSE:Linux Micro 6.0 | Реестр пакетов (OSV) |
| suse:kernel-rt | 6.4.0-31.1 · SUSE:Linux Micro 6.0 | Реестр пакетов (OSV) |
| suse:kernel-source | 6.4.0-29.1 · SUSE:Linux Micro 6.0 | Реестр пакетов (OSV) |
| suse:kernel-source-rt | 6.4.0-31.1 · SUSE:Linux Micro 6.0 | Реестр пакетов (OSV) |
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
В записи нет: истории EPSS · ссылки на коммит или PR с исправлением · указания авторов находки · кандидатов в варианты и цепочки · публичной программы вознаграждений.
Технические детали
Условия атаки
- Может быть вызвана пользователем с локальным доступом к системе.
- Достаточно учётной записи с низкими привилегиями.
- Действия пользователя не требуются.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- нет
- Целостность
- нет
- Доступность
- высокое · работа сервиса может быть нарушена
- Вектор атаки
- Локальный
- Сложность атаки
- Низкая
- Требуемые привилегии
- Низкие
- Взаимодействие с пользователем
- Не требуется
- Область действия
- Не изменяется
- Влияние на конфиденциальность
- Нет
- Влияние на целостность
- Нет
- Влияние на доступность
- Высокое
Класс уязвимости (CWE)
CWE-667 · Improper LockingВектор 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.
Журнал изменений (1)
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
Показать все источники (ещё 3)Свернуть
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.