Перейти к содержимому
Noroxi
NVD / CVE Program· CNA Linux

CVE-2024-26759: mm/swap: fix race when skipping swapcache

Оценка Noroxi

Приоритет: Наблюдать (оценка срочности 22/100)

  • В отслеживаемых источниках (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) нет публичного эксплойта или записей об эксплуатации.
  • Вероятность эксплуатации в ближайшие 30 дней: 0,26% (FIRST EPSS).
  • Может быть вызвана пользователем с локальным доступом к системе. Достаточно учётной записи с низкими привилегиями. Действия пользователя не требуются. Особые условия не требуются; воспроизводится стабильно.
  • Исправленная версия: Linux Linux 13ddaf26be324a7f951891ecd9ccd04466d27458, 2dedda77d4493f3e92e414b272bfa60f1f51ed95, 305152314df82b22cf9b181f3dc5fc411002079a.
  • Критичность спорная: CNA оценивает в 7.8, NVD — в 5.5.
  • Упоминается в национальных бюллетенях кибербезопасности Турции (siberguvenlik.gov.tr): 1.

Пока низкий приоритет. Обновитесь до Linux Linux 13ddaf26be324a7f951891ecd9ccd04466d27458, 2dedda77d4493f3e92e414b272bfa60f1f51ed95, 305152314df82b22cf9b181f3dc5fc411002079a или новее.

Формируется автоматически по данным записи: CVSS (NVD и CNA), CISA KEV и SSVC, FIRST EPSS, источники эксплойтов, исправленные версии. Как мы считаем

Первоисточники: NVD · CVE.org · FIRST EPSS

In the Linux kernel, the following vulnerability has been resolved: mm/swap: fix race when skipping swapcache When skipping swapcache for SWP_SYNCHRONOUS_IO, if two or more threads swapin the same entry at the same time, they get different pages (A, B). Before one thread (T0) finishes the swapin and installs page (A) to the PTE, another thread (T1) could finish swapin of page (B), swap_free the entry, then swap out the possibly modified page reusing the same entry. It breaks the pte_same check in (T0) because PTE value is unchanged, causing ABA problem. Thread (T0) will install a stalled page (A) into the PTE and cause data corruption. One possible callstack is like this: CPU0 CPU1 ---- ---- do_swap_page() do_swap_page() with same entry <direct swapin path> <direct swapin path> <alloc page A> <alloc page B> swap_read_folio() <- read to page A swap_read_folio() <- read to page B <slow on later locks or interrupt> <finished swapin first> ... set_pte_at() swap_free() <- entry is free <write to page B, now page A stalled> <swap out page B to same swap entry> pte_same() <- Check pass, PTE seems unchanged, but page A is stalled! swap_free() <- page B content lost! set_pte_at() <- staled page A installed! And besides, for ZRAM, swap_free() allows the swap device to discard the entry content, so even if page (B) is not modified, if swap_read_folio() on CPU0 happens later than swap_free() on CPU1, it may also cause data loss. To fix this, reuse swapcache_prepare which will pin the swap entry using the cache flag, and allow only one thread to swap it in, also prevent any parallel code from putting the entry in the cache. Release the pin after PT unlocked. Racers just loop and wait since it's a rare and very short event. A schedule_timeout_uninterruptible(1) call is added to avoid repeated page faults wasting too much CPU, causing livelock or adding too much noise to perf statistics. A similar livelock issue was described in commit 029c4628b2eb ("mm: swap: get rid of livelock in swapin readahead") Reproducer: This race issue can be triggered easily using a well constructed reproducer and patched brd (with a delay in read path) [1]: With latest 6.8 mainline, race caused data loss can be observed easily: $ gcc -g -lpthread test-thread-swap-race.c && ./a.out Polulating 32MB of memory region... Keep swapping out... Starting round 0... Spawning 65536 workers... 32746 workers spawned, wait for done... Round 0: Error on 0x5aa00, expected 32746, got 32743, 3 data loss! Round 0: Error on 0x395200, expected 32746, got 32743, 3 data loss! Round 0: Error on 0x3fd000, expected 32746, got 32737, 9 data loss! Round 0 Failed, 15 data loss! This reproducer spawns multiple threads sharing the same memory region using a small swap device. Every two threads updates mapped pages one by one in opposite direction trying to create a race, with one dedicated thread keep swapping out the data out using madvise. The reproducer created a reproduce rate of about once every 5 minutes, so the race should be totally possible in production. After this patch, I ran the reproducer for over a few hundred rounds and no data loss observed. Performance overhead is minimal, microbenchmark swapin 10G from 32G zram: Before: 10934698 us After: 11157121 us Cached: 13155355 us (Dropping SWP_SYNCHRONOUS_IO flag) [kasong@tencent.com: v4]

СредняяCVSS 5.5 · v3.1—Эксплойта нет Есть исправление
Опубликовано
3 апр. 2024 г.
Обновлено
5 авг. 2026 г.
EPSS
0,2 % · 18-й процентиль

Инструменты для отчёта

JSON

Оценка срочности

22

Наблюдать

Пока низкий приоритет.

CVSS
22 / 40 · 5.5 / 10
CISA KEV
0 / 30 · Нет в списке
EPSS
0 / 30 · 0,2 %

Решение CISA SSVC

Эксплуатация
нет
Автоматизируемо
нет
Техническое влияние
частичное

Vulnrichment: входные данные дерева решений CISA.

Оценка CNA и NVD

NVD
5,5
CNA · Linux
7,8
разница 2,3 балла

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.

Узнайте, когда запись изменится

  • Нет в KEV: эксплуатация в реальных атаках не зафиксирована
  • Публичного эксплойта нет
  • Исправление выпущено

Если что-то из этого изменится, сообщим в ежедневной сводке.

Следить за CVE-2024-26759

Когда мы напишем

  • когда запись попадёт в CISA KEV
  • когда появится или станет боевым эксплойт
  • когда запись обновится (в том числе исправленная версия)
  • когда EPSS вырастет на 20 пунктов за неделю

Одна сводка в день по почте (06:00 UTC); с вебхуком попадание в KEV и боевые эксплойты — сразу.

С бесплатным аккаунтом также

У вас WordPress? Проверьте сайт бесплатно в WP Lens

  • Оповещения по стеку: добавьте свои продукты и версии — новые CVE для них придут вам
  • Мониторинг сайта: 1 сайт, письмо сразу при недоступности
  • Добавьте домен: поддомены и риск захвата проверяются каждую неделю (1 домен)
  • 10 проверок в час в инструментах безопасности (без аккаунта — 3 в день), API-ключ и MCP
  • Все сканирования в одной панели: находки, изменения с прошлого сканирования, отчёт по домену или клиенту (PDF, ссылка для просмотра)
Все бесплатные инструменты

Регистрация по почте · Уже есть аккаунт? Войти

Бесплатный аккаунт, без карты. Отписаться можно в любой момент.

У вас WordPress? Проверьте сайт бесплатно в WP Lens

Затронута ли ваша версия? Проверьте

Анализ Noroxi

Что это значит для вашей инфраструктуры?

Оценка выше формируется автоматически по данным записи и не знает вашей среды. Наша команда проверит на ваших системах, действительно ли уязвимость эксплуатируема и какой меры достаточно.

Мы используем этот продукт, нужна помощь

Затронутые системы

Затронута ли ваша версия?

Выберите продукт и введите свою версию. Она сравнивается с диапазонами этой записи прямо в браузере и никуда не отправляется.

ВендорПродукт
linuxlinux kernel

Затронутые версии

Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.

  • linux linux kernel4.15 и новее · до 6.1.80
  • linux linux kernel6.2 и новее · до 6.6.19
  • linux linux kernel6.7 и новее · до 6.7.7
  • linux linux kernel6.8

Версии, заявленные вендором

Диапазоны затронутых версий, заявленные назначающей организацией (Linux). Не зависят от анализа CPE в NVD и обычно опережают его.

  • Linux Linux

    • 4.15затронута
    • 0bcac06f27d7528591c27ac2b093ccd71c5d0168 и новее · до 2dedda77d4493f3e92e414b272bfa60f1f51ed95затронута · git
    • 0bcac06f27d7528591c27ac2b093ccd71c5d0168 и новее · до 305152314df82b22cf9b181f3dc5fc411002079aзатронута · git
    • 0bcac06f27d7528591c27ac2b093ccd71c5d0168 и новее · до d183a4631acfc7af955c02a02e739cec15f5234dзатронута · git
    • 0bcac06f27d7528591c27ac2b093ccd71c5d0168 и новее · до 13ddaf26be324a7f951891ecd9ccd04466d27458затронута · git
    • до 4.15не затронута · semver
    • 6.1.80 и новее · до 6.1.* включительноне затронута · semver
    • 6.6.19 и новее · до 6.6.* включительноне затронута · semver
    • 6.7.7 и новее · до 6.7.* включительноне затронута · semver
    • 6.8 и новеене затронута · original_commit_for_fix

Затронутые пакеты

Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.

ЭкосистемаПакетЗатронутый диапазонИсправление
Debian:12linuxдо 6.1.82-16.1.82-1
Debian:13linuxдо 6.7.7-16.7.7-1
openSUSE:Leap 15.5kernel-azureдо 5.14.21-150500.33.69.15.14.21-150500.33.69.1
openSUSE:Leap 15.5kernel-rt_debugдо 5.14.21-150500.13.73.15.14.21-150500.13.73.1
openSUSE:Leap 15.5kernel-source-azureдо 5.14.21-150500.33.69.15.14.21-150500.33.69.1
openSUSE:Leap 15.5kernel-source-rtдо 5.14.21-150500.13.73.15.14.21-150500.13.73.1
openSUSE:Leap 15.5kernel-syms-azureдо 5.14.21-150500.33.69.15.14.21-150500.33.69.1
openSUSE:Leap 15.5kernel-syms-rtдо 5.14.21-150500.13.73.15.14.21-150500.13.73.1
openSUSE:Leap 15.6dtb-aarch64до 6.4.0-150600.23.25.16.4.0-150600.23.25.1
openSUSE:Leap 15.6kernel-64kbдо 6.4.0-150600.23.25.16.4.0-150600.23.25.1
openSUSE:Leap 15.6kernel-azureдо 6.4.0-150600.8.14.16.4.0-150600.8.14.1
openSUSE:Leap 15.6kernel-debugдо 6.4.0-150600.23.25.16.4.0-150600.23.25.1
openSUSE:Leap 15.6kernel-defaultдо 6.4.0-150600.23.25.16.4.0-150600.23.25.1
openSUSE:Leap 15.6kernel-default-baseдо 6.4.0-150600.23.25.1.150600.12.10.26.4.0-150600.23.25.1.150600.12.10.2
openSUSE:Leap 15.6kernel-docsдо 6.4.0-150600.23.25.26.4.0-150600.23.25.2
openSUSE:Leap 15.6kernel-kvmsmallдо 6.4.0-150600.23.25.16.4.0-150600.23.25.1
openSUSE:Leap 15.6kernel-obs-buildдо 6.4.0-150600.23.25.26.4.0-150600.23.25.2
openSUSE:Leap 15.6kernel-obs-qaдо 6.4.0-150600.23.25.16.4.0-150600.23.25.1
openSUSE:Leap 15.6kernel-rtдо 6.4.0-150600.10.14.16.4.0-150600.10.14.1
openSUSE:Leap 15.6kernel-rt_debugдо 6.4.0-150600.10.14.16.4.0-150600.10.14.1
openSUSE:Leap 15.6kernel-sourceдо 6.4.0-150600.23.25.16.4.0-150600.23.25.1
openSUSE:Leap 15.6kernel-source-azureдо 6.4.0-150600.8.14.16.4.0-150600.8.14.1
openSUSE:Leap 15.6kernel-source-rtдо 6.4.0-150600.10.14.16.4.0-150600.10.14.1
openSUSE:Leap 15.6kernel-symsдо 6.4.0-150600.23.25.16.4.0-150600.23.25.1

+96

Тот же продукт

linux: все записи

Другие записи с наивысшей оценкой для того же основного продукта.

  • CVE-2026-31431crypto: algif_aead - Revert to operating out-of-placeKEV
    90Срочно
  • 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 KEV
    89Срочно
  • CVE-2021-22555Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACEKEV
    85Срочно

Опубликованы до и после этой записи в том же продукте

  • ← РаньшеCVE-2024-267573 апр. 2024 г. · md: Don't ignore read-only array in md_check_recovery()
    22Наблюдать
  • ← РаньшеCVE-2024-267583 апр. 2024 г. · md: Don't ignore suspended array in md_check_recovery()
    22Наблюдать
  • Позже →CVE-2024-267603 апр. 2024 г. · scsi: target: pscsi: Fix bio_put() for error case
    22Наблюдать

Исправление

На какую версию обновиться

Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.

Продукт / пакетИсправленная версияИсточник
Linux Linux13ddaf26be324a7f951891ecd9ccd04466d27458Вендор (CNA)
Linux Linux2dedda77d4493f3e92e414b272bfa60f1f51ed95Вендор (CNA)
Linux Linux305152314df82b22cf9b181f3dc5fc411002079aВендор (CNA)
Linux Linuxd183a4631acfc7af955c02a02e739cec15f5234dВендор (CNA)
almalinux:bpftool4.18.0-553.8.1.el8_10 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:kernel4.18.0-553.8.1.el8_10 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:kernel-abi-stablelists4.18.0-553.8.1.el8_10 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:kernel-core4.18.0-553.8.1.el8_10 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:kernel-cross-headers4.18.0-553.8.1.el8_10 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:kernel-debug4.18.0-553.8.1.el8_10 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:kernel-debug-core4.18.0-553.8.1.el8_10 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:kernel-debug-devel4.18.0-553.8.1.el8_10 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:kernel-debug-modules4.18.0-553.8.1.el8_10 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:kernel-debug-modules-extra4.18.0-553.8.1.el8_10 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:kernel-devel4.18.0-553.8.1.el8_10 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:kernel-doc4.18.0-553.8.1.el8_10 · AlmaLinux:8Реестр пакетов (OSV)
debian:linux6.1.82-1 · Debian:12Реестр пакетов (OSV)
opensuse:dtb-aarch646.4.0-150600.23.25.1 · openSUSE:Leap 15.6Реестр пакетов (OSV)
opensuse:kernel-64kb6.4.0-150600.23.25.1 · openSUSE:Leap 15.6Реестр пакетов (OSV)
opensuse:kernel-azure6.4.0-150600.8.14.1 · openSUSE:Leap 15.6Реестр пакетов (OSV)
opensuse:kernel-debug6.4.0-150600.23.25.1 · openSUSE:Leap 15.6Реестр пакетов (OSV)
opensuse:kernel-default6.4.0-150600.23.25.1 · openSUSE:Leap 15.6Реестр пакетов (OSV)
opensuse:kernel-default-base6.4.0-150600.23.25.1.150600.12.10.2 · openSUSE:Leap 15.6Реестр пакетов (OSV)
opensuse:kernel-docs6.4.0-150600.23.25.2 · openSUSE:Leap 15.6Реестр пакетов (OSV)
opensuse:kernel-kvmsmall6.4.0-150600.23.25.1 · openSUSE:Leap 15.6Реестр пакетов (OSV)
opensuse:kernel-obs-build6.4.0-150600.23.25.2 · openSUSE:Leap 15.6Реестр пакетов (OSV)
opensuse:kernel-obs-qa6.4.0-150600.23.25.1 · openSUSE:Leap 15.6Реестр пакетов (OSV)
opensuse:kernel-source-azure6.4.0-150600.8.14.1 · openSUSE:Leap 15.6Реестр пакетов (OSV)
opensuse:kernel-syms-azure6.4.0-150600.8.14.1 · openSUSE:Leap 15.6Реестр пакетов (OSV)
red hat:bpftool-debuginfo0:7.3.0-427.57.1.el9_4 · Red Hat:rhel_eus:9.4::appstreamРеестр пакетов (OSV)

+24

Статус эксплойта

Публичный эксплойт неизвестен

Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.

Контекст для исследователя

Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.

Хронология

От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.

Кроме публикации датированных событий нет.

Истории пока нет (накапливается ежедневным заданием EPSS).

Ссылки на патчи и коммиты

Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.

Среди источников нет ссылок на коммит или PR.

Нашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.

В записи CNA нет авторов.

Кандидаты в варианты

Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.

Ночной расчёт связей ничего не нашёл.

Кандидаты в цепочки

Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.

—

Охват bug bounty

Известной публичной программы нет.

Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).

Национальное уведомление (Управление кибербезопасности Турции / USOM)

Официальные уведомления, ссылающиеся на эту запись; рекомендации — на странице ведомства.

Все национальные уведомления →

Технические детали

Условия атаки

  • Может быть вызвана пользователем с локальным доступом к системе.
  • Достаточно учётной записи с низкими привилегиями.
  • Действия пользователя не требуются.
  • Особые условия не требуются; воспроизводится стабильно.

В случае успеха

Конфиденциальность
нет
Целостность
нет
Доступность
высокое · работа сервиса может быть нарушена
Вектор атаки
Локальный
Сложность атаки
Низкая
Требуемые привилегии
Низкие
Взаимодействие с пользователем
Не требуется
Область действия
Не изменяется
Влияние на конфиденциальность
Нет
Влияние на целостность
Нет
Влияние на доступность
Высокое

Класс уязвимости (CWE)

CWE-787 · Out-of-bounds Write

Вектор 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.

Журнал изменений

  1. Исправление✗ → ✓

Для отслеживаемых записей эти изменения приходят и как уведомления. →

Источники

Показать все источники (ещё 3)

Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.

Все записи