Мониторинг Карточка CVE
Открытые данные
К списку уязвимостей
Информационный
Опубликована

CVE-2026-98644

bpf: Avoid soft lockup in __htab_map_lookup_and_delete_batch()

Публикация: 18.10.2026·Обновлена: 19.10.2026, 12:23·Europe/Moscow

Что произошло

Автоперевод выключен · оригинальное описание

In the Linux kernel, the following vulnerability has been resolved: bpf: Avoid soft lockup in __htab_map_lookup_and_delete_batch() __htab_map_lookup_and_delete_batch() has no rescheduling point. The batch count bounds how many entries are copied out, not how many buckets are visited, so one BPF_MAP_LOOKUP_BATCH call can walk the map end to end. The empty-bucket fast path is worse: it stays inside a single rcu_read_lock() / bpf_disable_instrumentation() section for any run of consecutive empty buckets. That holds up on small maps, but it falls apart at scale. On a 144-CPU arm64 host running a CONFIG_PREEMPT_NONE kernel, periodic BPF_MAP_LOOKUP_BATCH calls against an LRU hash map with 16,777,216 buckets held a CPU inside the batch op for 77+ seconds and triggered the soft lockup watchdog. Commit 75134f16e7dd ("bpf: Add schedule points in batch ops") fixed this same problem in the generic batch ops, but not in this htab-native path, which every htab-based hash map variant uses for its lookup[_and_delete] batch ops. Complete that fix here. Leave the critical section after 64 consecutive empty buckets, call cond_resched_tasks_rcu_qs(), and resume at the saved bucket cursor. No locks are held at that point, and resuming from the cursor is already the function's behavior for non-empty buckets. Add the same call to the per-bucket loop after copy_to_user(), where every lock has been dropped. cond_resched_rcu() is not enough here: sleeping with bpf_prog_active elevated makes tracing programs on that CPU silently skip their invocations. Plain cond_resched() is not enough either. It is a no-op under PREEMPT and PREEMPT_LAZY, the only models arm64 and x86 have offered since commit 7dadeaa6e851 ("sched: Further restrict the preemption modes"). It is also never a Tasks RCU quiescent state, in any model: the reschedule counts as a preemption. The walking task stays a holdout and stalls every synchronize_rcu_tasks() caller, ftrace and BPF trampoline teardown included, until the syscall returns [1]. cond_resched_tasks_rcu_qs() is the usual tool for that [2]. It reports the quiescent state at each yield and still reschedules as cond_resched() does on PREEMPT_NONE and PREEMPT_VOLUNTARY kernels.

Что это значит

В источнике описана ошибка безопасности в перечисленных продуктах. Фактический риск зависит от установленной версии, конфигурации и доступности компонента; проверьте условия в первичном бюллетене.

Что делать

Редакционные пояснения, сведения источников и общие рекомендации помечены отдельно
Плановое окно после оценки применимости

1. Проверьте, затронуты ли вы

Соберите инвентаризацию и сравните с таблицей затронутых версий. Эти команды только показывают установленные компоненты и сами по себе не доказывают наличие CVE.

Debian / Ubuntu
dpkg-query -W -f='${Package}	${Version}\n'
RHEL / AlmaLinux
rpm -qa --qf '%{NAME}\t%{VERSION}-%{RELEASE}\n'
Windows PowerShell
Get-HotFix | Select-Object HotFixID, InstalledOn
Общая рекомендация, не из бюллетеня вендора

2. Установите исправление

Сверьте точный продукт и версию с бюллетенем вендора. Установите указанное в нём исправление после резервного копирования и проверки совместимости. Подтверждённая целевая версия в источниках отсутствует.

Общая рекомендация, не из бюллетеня вендора

3. Временные меры

До проверки бюллетеня ограничьте доступ к затронутому компоненту доверенными узлами. Оцените сегментацию и отключение ненужных интерфейсов с владельцем сервиса; универсального правила WAF для этой CVE не подтверждено.

Общая рекомендация, не из бюллетеня вендора

4. Проверьте следы эксплуатации

Проверьте аномальные входы, новые учётные записи, ошибки и необычные дочерние процессы в затронутом сервисе. Публичные проверенные правила обнаружения не включены в запись; отсутствие сигналов не доказывает отсутствие компрометации.

Общая рекомендация, не из бюллетеня вендора

5. После исправления

  • Проверьте фактическую версию и результат установки по бюллетеню.
  • При необходимости перезапустите сервисы в согласованное окно.
  • Повторите проверку сканером и функциональные проверки.
  • Зафиксируйте результат, дату, владельца и оставшийся риск.

Продукты и затронутые версии

Linux / Linux

{
  "status": "affected",
  "version": "057996380a42bb64ccc04383cfa9c0ace4ea11f0",
  "lessThan": "5c8b1869cb99a32a962388848cd19604fb41263e",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "057996380a42bb64ccc04383cfa9c0ace4ea11f0",
  "lessThan": "ca5bd55fc508fbb5c08c62206d02237a5b6fc7e8",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "057996380a42bb64ccc04383cfa9c0ace4ea11f0",
  "lessThan": "77a3b52b4455e6377e549539e757bc55eedefb51",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "057996380a42bb64ccc04383cfa9c0ace4ea11f0",
  "lessThan": "f0c09de08ec077098b7e1563f2285f1c136cd816",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "057996380a42bb64ccc04383cfa9c0ace4ea11f0",
  "lessThan": "44f9bcb5ab2b268bc763ed3ebec83308b4972936",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "057996380a42bb64ccc04383cfa9c0ace4ea11f0",
  "lessThan": "4e48fe9b1c77966bede0a73feb3059d7595f642d",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "057996380a42bb64ccc04383cfa9c0ace4ea11f0",
  "lessThan": "85136bf22404474a815fc0ed26ec0d1cbc1bc3f9",
  "versionType": "git"
}

Linux / Linux

{
  "status": "affected",
  "version": "5.6"
}
{
  "status": "unaffected",
  "version": "0",
  "lessThan": "5.6",
  "versionType": "semver"
}
{
  "status": "unaffected",
  "version": "5.15.222",
  "versionType": "semver",
  "lessThanOrEqual": "5.15.*"
}
{
  "status": "unaffected",
  "version": "6.1.189",
  "versionType": "semver",
  "lessThanOrEqual": "6.1.*"
}
{
  "status": "unaffected",
  "version": "6.6.158",
  "versionType": "semver",
  "lessThanOrEqual": "6.6.*"
}
{
  "status": "unaffected",
  "version": "6.12.112",
  "versionType": "semver",
  "lessThanOrEqual": "6.12.*"
}
{
  "status": "unaffected",
  "version": "6.18.55",
  "versionType": "semver",
  "lessThanOrEqual": "6.18.*"
}
{
  "status": "unaffected",
  "version": "7.2.9",
  "versionType": "semver",
  "lessThanOrEqual": "7.2.*"
}
{
  "status": "unaffected",
  "version": "7.3",
  "versionType": "original_commit_for_fix",
  "lessThanOrEqual": "*"
}

CVSS: оценки и векторы

Оценка CVSS отсутствует.

Источники и ссылки

Происхождение полей
{
  "cwes": [],
  "epss": {
    "source": "epss",
    "received_at": "2026-11-03T21:16:05.879020+00:00"
  },
  "title": {
    "source": "cve",
    "received_at": "2026-10-28T20:15:08.386449+00:00"
  },
  "scores": [],
  "status": {
    "source": "cve",
    "received_at": "2026-10-28T20:15:08.386449+00:00"
  },
  "affected": [
    "cve"
  ],
  "published": {
    "source": "cve",
    "received_at": "2026-10-28T20:15:08.386449+00:00"
  },
  "solutions": [],
  "percentile": {
    "source": "epss",
    "received_at": "2026-11-03T21:16:05.879020+00:00"
  },
  "references": [
    "cve"
  ],
  "description": {
    "source": "cve",
    "received_at": "2026-10-28T20:15:08.386449+00:00"
  },
  "workarounds": [],
  "configurations": []
}

Хронология записи

  1. Данные обновлены04.11.2026, 00:16
  2. Данные обновлены03.11.2026, 00:15
  3. Данные обновлены02.11.2026, 00:13
  4. Данные обновлены31.10.2026, 12:00
  5. Данные обновлены29.10.2026, 12:47
  6. Опубликована28.10.2026, 23:15

Личная заметка и статус

Другие CVE того же продукта

УЯЗВИМОСТЬ / ПРОДУКТПРИОРИТЕТCVSSEPSSСИГНАЛЫОПУБЛИКОВАНАКарточка
CVE-2024-46852
dma-buf: heaps: Fix off-by-one in CMA heap fault handler
Linux / Linux
Высокий7.8
0,22 %
27.09.2024
CVE-2024-36978
net: sched: sch_multiq: fix possible OOB write in multiq_tune()
Linux / Linux · Siemens / RUGGEDCOM RST2428P
Высокий7.8
0,28 %
19.06.2024
CVE-2024-26923
af_unix: Fix garbage collector racing against connect()
Linux / Linux · Siemens / RUGGEDCOM RST2428P
Высокий7.8
0,21 %
25.04.2024
CVE-2026-99246
tipc: protect node reset trace dump with node lock
Linux / Linux
Высокий8.1
—
03.11.2026
CVE-2026-99268
io_uring: wake ring pollers for local task_work
Linux / Linux
Информационный—
—
03.11.2026