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

CVE-2026-80893

mm/hugetlb: fix swap entry corruption when clearing uffd-wp at fork()

Публикация: 04.09.2026·Обновлена: 06.11.2026, 20:20·Europe/Moscow

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

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

In the Linux kernel, the following vulnerability has been resolved: mm/hugetlb: fix swap entry corruption when clearing uffd-wp at fork() copy_hugetlb_page_range() clears the uffd-wp bit of migration and hwpoison entries with huge_pte_clear_uffd_wp(), which operates on the present-PTE bit position. Swap entries keep the uffd-wp state elsewhere -- the migration branch reads and sets it with pte_swp_uffd_wp() and pte_swp_mkuffd_wp() -- and the present-PTE position falls into the swap payload. On x86-64 it lands in the inverted swap offset, where a naturally-aligned hugetlb PFN always has the affected bit set, so the clear advances the encoded PFN by two pages. No userfaultfd needs to be involved: the clear is guarded only by the child VMA not being uffd-wp registered, so a plain fork() with an in-flight hugetlb migration entry (or a poisoned hugetlb page) corrupts the entry copied into the child. Instrumenting the clear and forking after MADV_HWPOISON on a 2MB anon hugetlb page shows: offset before=120e00 offset after =120e02 The fallout is mostly latent: rmap walks match migration entries by folio range and remove_migration_pte() rebuilds the PTE from the folio, so a within-folio PFN skew heals once migration completes. But any path that re-encodes the corrupted offset -- e.g. hugetlb_change_protection() rewriting a writable migration entry via make_readable_migration_entry(swp_offset(entry)) -- propagates it. Migration entries legitimately carry uffd-wp, so clear it with pte_swp_clear_uffd_wp(), matching copy_nonpresent_pte() and move_huge_pte(). A hwpoison entry, on the other hand, never carries the uffd-wp bit: it is installed fresh by make_hwpoison_entry() (try_to_unmap_one() does not preserve uffd-wp on the hwpoison path) and hugetlb_change_protection() leaves hwpoison entries untouched. There was nothing to clear there, only the corruption, so drop the clear entirely.

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

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

Что делать

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

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": "bc70fbf269fdff410b0b6d75c3770b9f59117b90",
  "lessThan": "f1b1311c0352873137768bac5a126e491271a747",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "bc70fbf269fdff410b0b6d75c3770b9f59117b90",
  "lessThan": "69cb5825d9988c7944bc9f1dc08cb233655405a7",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "bc70fbf269fdff410b0b6d75c3770b9f59117b90",
  "lessThan": "8b0de7005b148738d79d6c45594d566489948a68",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "bc70fbf269fdff410b0b6d75c3770b9f59117b90",
  "lessThan": "2b9a07002c2f296aa6a9c591213933d3492e3089",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "bc70fbf269fdff410b0b6d75c3770b9f59117b90",
  "lessThan": "2fa11c60c9c06bafc19cf4d9efdaa36a38079e87",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "bc70fbf269fdff410b0b6d75c3770b9f59117b90",
  "lessThan": "83abe2fd5b3aeb3123b5408a5a91709c5538fb23",
  "versionType": "git"
}

Linux / Linux

{
  "status": "affected",
  "version": "5.19"
}
{
  "status": "unaffected",
  "version": "0",
  "lessThan": "5.19",
  "versionType": "semver"
}
{
  "status": "unaffected",
  "version": "6.1.183",
  "versionType": "semver",
  "lessThanOrEqual": "6.1.*"
}
{
  "status": "unaffected",
  "version": "6.6.151",
  "versionType": "semver",
  "lessThanOrEqual": "6.6.*"
}
{
  "status": "unaffected",
  "version": "6.12.103",
  "versionType": "semver",
  "lessThanOrEqual": "6.12.*"
}
{
  "status": "unaffected",
  "version": "6.18.44",
  "versionType": "semver",
  "lessThanOrEqual": "6.18.*"
}
{
  "status": "unaffected",
  "version": "7.1.8",
  "versionType": "semver",
  "lessThanOrEqual": "7.1.*"
}
{
  "status": "unaffected",
  "version": "7.2",
  "versionType": "original_commit_for_fix",
  "lessThanOrEqual": "*"
}

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

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

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

Происхождение полей
{
  "cwes": [],
  "epss": {
    "source": "epss",
    "received_at": "2026-11-05T21:16:22.423050+00:00"
  },
  "title": {
    "source": "cve",
    "received_at": "2026-11-06T17:22:28.296980+00:00"
  },
  "scores": [],
  "status": {
    "source": "cve",
    "received_at": "2026-11-06T17:22:28.296980+00:00"
  },
  "affected": [
    "cve"
  ],
  "published": {
    "source": "cve",
    "received_at": "2026-11-06T17:22:28.296980+00:00"
  },
  "solutions": [],
  "percentile": {
    "source": "epss",
    "received_at": "2026-11-05T21:16:22.423050+00:00"
  },
  "references": [
    "cve",
    "nvd"
  ],
  "description": {
    "source": "cve",
    "received_at": "2026-11-06T17:22:28.296980+00:00"
  },
  "workarounds": [],
  "configurations": []
}

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

  1. Данные обновлены06.11.2026, 00:16
  2. Данные обновлены05.11.2026, 00:20
  3. Данные обновлены04.11.2026, 00:15
  4. Данные обновлены03.11.2026, 00:14
  5. Данные обновлены02.11.2026, 00:12
  6. Данные обновлены31.10.2026, 11:59
  7. Данные обновлены29.10.2026, 12:42
  8. Опубликована28.10.2026, 21:55

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

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

УЯЗВИМОСТЬ / ПРОДУКТПРИОРИТЕТCVSSEPSSСИГНАЛЫОПУБЛИКОВАНАКарточка
CVE-2026-99270
tcp: Fix potential UAF in reqsk_timer_handler().
Linux / Linux
Высокий8.1
0,31 %
03.11.2026
CVE-2026-99255
io_uring/io-wq: don't hide a link from cancellations
Linux / Linux
Информационный—
0,2 %
03.11.2026
CVE-2026-99231
io_uring/waitid: own the request before clearing ->head
Linux / Linux
Высокий7.8
0,12 %
02.11.2026
CVE-2026-99230
io_uring/cmd: don't leave list poison in ->hash_node
Linux / Linux
Информационный—
0,16 %
02.11.2026
CVE-2026-99229
io_uring/wait: don't spin on a stuck overflow list
Linux / Linux
Информационный—
0,16 %
02.11.2026
CVE-2026-80893: mm/hugetlb: fix swap entry corruption when clearing uffd-wp at fork() · CVE Радар