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

CVE-2026-98226

mm, swap: fix SWAP_USAGE_OFFLIST_BIT collision with real usage count

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

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

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

In the Linux kernel, the following vulnerability has been resolved: mm, swap: fix SWAP_USAGE_OFFLIST_BIT collision with real usage count SWAP_USAGE_OFFLIST_BIT is embedded in the si->inuse_pages usage counter, and is meant to sit above any value that counter can reach. However, it is defined from BITS_PER_TYPE(atomic_t), so it is bit 30. On a system with 4 KiB pages the flag collides with the usage count once that count reaches 4 TiB. swap_usage_in_pages() masks bit 30 out, so whenever the real count has that bit set, every caller of it reads 4 TiB low: * /proc/swaps understates Used by 4 TiB. * A raw count of exactly 2^30 masks to zero, so try_to_unuse() takes its "if (!swap_usage_in_pages(si)) goto success;" early exit and swapoff tears the device down while pages are still swapped out. Nothing in the rest of swapoff aborts the teardown, so those pages are lost. Independently of swapoff, the collision also corrupts the counter and the plist. On a device in normal use, a free that leaves bit 30 set in the count makes swap_usage_sub() see the flag where there is only count, and call add_to_avail_list(). It clears the bit with fetch_and(~SWAP_USAGE_OFFLIST_BIT), leaving the stored count 4 TiB below the real one, and calls plist_add() on a device that is already listed, tripping the WARN_ON(!plist_node_empty(node)) in plist_add() and linking the node a second time. Change the definition of SWAP_USAGE_OFFLIST_BIT to be based on atomic_long_t instead. Note that the usage counter field itself is of this same type, so it is still a valid bit.

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

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

Что делать

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

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": "b228386cf237e659cdf5d8037a19db0b0a06f6b5",
  "lessThan": "0a41a46859df0d2bd7ed127197aac7c7389c00ed",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "b228386cf237e659cdf5d8037a19db0b0a06f6b5",
  "lessThan": "7c0d0d6de46076b43a2acaf1026b6648f8434c39",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "b228386cf237e659cdf5d8037a19db0b0a06f6b5",
  "lessThan": "12e9ac7bc5b254048f886bf421e3a15491106c1f",
  "versionType": "git"
}

Linux / Linux

{
  "status": "affected",
  "version": "6.14"
}
{
  "status": "unaffected",
  "version": "0",
  "lessThan": "6.14",
  "versionType": "semver"
}
{
  "status": "unaffected",
  "version": "6.18.54",
  "versionType": "semver",
  "lessThanOrEqual": "6.18.*"
}
{
  "status": "unaffected",
  "version": "7.2.8",
  "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.821878+00:00"
  },
  "title": {
    "source": "cve",
    "received_at": "2026-10-28T20:13:06.368472+00:00"
  },
  "scores": [],
  "status": {
    "source": "cve",
    "received_at": "2026-10-28T20:13:06.368472+00:00"
  },
  "affected": [
    "cve"
  ],
  "published": {
    "source": "cve",
    "received_at": "2026-10-28T20:13:06.368472+00:00"
  },
  "solutions": [],
  "percentile": {
    "source": "epss",
    "received_at": "2026-11-03T21:16:05.821878+00:00"
  },
  "references": [
    "cve"
  ],
  "description": {
    "source": "cve",
    "received_at": "2026-10-28T20:13:06.368472+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:13

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

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

УЯЗВИМОСТЬ / ПРОДУКТПРИОРИТЕТCVSSEPSSСИГНАЛЫОПУБЛИКОВАНАКарточка
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-46852
dma-buf: heaps: Fix off-by-one in CMA heap fault handler
Linux / Linux · debian / debian_linux
Высокий7.8
0,22 %
Патч
27.09.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-99270
tcp: Fix potential UAF in reqsk_timer_handler().
Linux / Linux
Высокий8.1
—
03.11.2026