CVE: CVE-2026-64558
Продукт: Linux Kernel
Дата публикации: 29.07.2026
Критичность: HIGH
CVSS: 7.8 (3.1)
EPSS: 0,12%; процентиль 2,12%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Уязвимость CVE-2026-64558 в ядре Linux связана с отсутствием проверки длины целевого буфера в реализации функции
pkey_pckmo. Исправление, выпущенное в июле 2026 года, добавляет проверку длины выходных данных перед их копированием. Уязвимость затрагивает системы на архитектуре IBM z/Architecture, использующие подсистему s390/pkey. Обновление рекомендовано для предотвращения потенциального повреждения данных и неопределённого поведения.Основные характеристики
CVE-2026-64558 — уязвимость типа переполнения буфера в ядре Linux, затрагивающая реализацию функции
pkey_pckmo в подсистеме криптографии s390. Отсутствие проверки длины выходных данных в функции key_to_protkey() может привести к переполнению целевого буфера. Исправление вносит дополнительную проверку, которая предотвращает запись данных, превышающих размер буфера. Изменение внесено в файл drivers/s390/crypto/pkey_pckmo.c и подтверждено в коммитах [3], [4], [5], [6].Какие продукты и версии затронуты
Уязвимость затрагивает ядра Linux, поддерживающие подсистему
s390/pkey, в частности, использующие модуль pkey_pckmo. Проблема актуальна для систем на архитектуре IBM z/Architecture, где применяется криптографическая подсистема ядра. Системы, в которых активна функциональность key_to_protkey() и используется pkey_pckmo, могут быть подвержены риску. Уязвимость может быть актуальна для всех версий ядра, где реализация pkey_pckmo не содержит исправления. Подробная информация о влиянии на конкретные версии доступна в исторических изменениях [3].Причина уязвимости
Корневая причина — отсутствие проверки длины выходных данных перед копированием в целевой буфер. В функции
key_to_protkey() реализация pkey_pckmo не проверяет, помещаются ли данные (t->len) в предоставленный буфер (*protkeylen). Если длина данных превышает размер буфера, происходит переполнение. Исправление добавляет проверку if (t->len > *protkeylen) и возвращает ошибку при несоответствии. Изменение внесено в drivers/s390/crypto/pkey_pckmo.c согласно исправлениям [3], [4], [5], [6].Как работает атака
Механизм уязвимости основан на том, что функция
key_to_protkey() может записать больше данных, чем позволяет целевой буфер. Если длина выходных данных (t->len) больше, чем размер буфера (*protkeylen), происходит переполнение. Это может привести к повреждению памяти или неопределённому поведению. Уязвимость наиболее актуальна в системах, где активна подсистема pkey_pckmo и функция key_to_protkey() вызывается с параметрами, позволяющими контролировать размер данных. Механизм зависит от контекста вызова и управления данными.Условия успешной эксплуатации
Для использования уязвимости требуется, чтобы система имела активную подсистему
s390/pkey и функцию key_to_protkey(). Необходимо, чтобы вызов функции происходил с параметрами, позволяющими генерировать данные, превышающие размер буфера. Уязвимость не является автоматической и требует определённых условий. В настоящее время нет подтверждённых эксплуатаций, однако потенциал использования существует. Системы, где функция key_to_protkey() активна, должны быть защищены обновлением.Возможный сценарий атаки
Сценарий предполагает, что функция
key_to_protkey() вызывается с входными данными, которые приводят к генерации данных большего размера, чем буфер. При отсутствии проверки это может вызвать переполнение, что в некоторых случаях может быть использовано для повреждения памяти или вызова отказа в обслуживании. Уязвимость наиболее актуальна в средах, где криптографические ключи обрабатываются в ядре, например, в системах IBM z/Architecture. Реализация pkey_pckmo и связанные с ней функции являются потенциальной точкой атаки.Есть ли публичный эксплойт
На момент проверки публичные эксплуатации или PoC для CVE-2026-64558 не подтверждены. Уязвимость связана с переполнением буфера и отсутствием проверки длины, что делает её потенциально эксплуатируемой. Однако, без подтверждённых случаев использования, риск эксплуатации остаётся теоретическим. Рекомендуется применять исправление, чтобы избежать потенциальных угроз.
Признаки эксплуатации
Отсутствие специфичных IOC для уязвимости. Возможные сигналы включают ошибки в журналах ядра при работе с криптографическими функциями, аномалии в системах, использующих
pkey_pckmo, или необычное поведение при вызове key_to_protkey(). Наличие таких событий может указывать на возможное использование, но не гарантирует эксплуатацию. Рекомендуется анализировать логи и мониторить активность подсистемы.Как обнаружить атаку
Обнаружение возможно через проверку версии ядра и наличия исправления в
pkey_pckmo. Системы, где активна подсистема s390/pkey, должны быть проанализированы на соответствие исправленной версии. Проверка через команды uname -r, uname -a или cat /proc/version позволяет определить версию ядра. Также можно использовать git log или git show для анализа коммитов [3].Как проверить свою версию
Для проверки версии ядра, в которой исправлена уязвимость CVE-2026-64558, можно использовать следующие команды:
Bash:
uname -r
или
Bash:
uname -a
или
Bash:
cat /proc/version
Для более точной проверки изменений рекомендуется проанализировать историю коммитов в ядре Linux, например, через
git log или git show [3].Исправление
Рекомендуется обновить ядро Linux до версии, содержащей исправление CVE-2026-64558. Обновление должно включать изменения в
drivers/s390/crypto/pkey_pckmo.c, добавляющие проверку длины выходных данных. Это позволит предотвратить переполнение буфера и потенциальные последствия, такие как повреждение данных или отказ в обслуживании. Системы, использующие подсистему s390/pkey, должны быть обновлены как можно скорее.Временные меры защиты
В отсутствие постоянного решения можно ограничить использование подсистемы
pkey_pckmo или функции key_to_protkey(), если это возможно. Также рекомендуется отслеживать журналы ядра на предмет ошибок, связанных с криптографическими операциями. Анализ активности, связанной с функциями pkey_pckmo, может помочь выявить подозрительные действия. Эти меры не устраняют уязвимость, но снижают риск её эксплуатации.Как проверить устранение уязвимости
После обновления рекомендуется проверить, что версия ядра содержит исправление. Это можно сделать с помощью команд:
Bash:
uname -r
или
Bash:
cat /proc/version
Также можно проверить историю коммитов в ядре, например:
Bash:
git log --oneline | grep -i "pkey_pckmo"
Если в выводе отображается коммит, связанный с исправлением, это подтверждает обновление. Также можно проверить, что в файле
drivers/s390/crypto/pkey_pckmo.c присутствует проверка длины, как указано в исправлении [3].Вывод
CVE-2026-64558 — уязвимость переполнения буфера в подсистеме
s390/pkey ядра Linux. Исправление, выпущенное в июле 2026 года, добавляет проверку длины данных перед копированием. Рекомендуется своевременно обновить ядро, особенно в системах, использующих pkey_pckmo. Наличие уязвимости в таких системах требует немедленного действия. Обновление помогает избежать потенциальных последствий, связанных с повреждением данных и неопределённым поведением.Официальные источники
- NVD — CVE-2026-64558
- FIRST EPSS — CVE-2026-64558
- s390/pkey: Check length in pkey_pckmo handler implementation - kernel/git/stable/linux.git - Linux kernel stable tree
- s390/pkey: Check length in pkey_pckmo handler implementation - kernel/git/stable/linux.git - Linux kernel stable tree
- s390/pkey: Check length in pkey_pckmo handler implementation - kernel/git/stable/linux.git - Linux kernel stable tree
- s390/pkey: Check length in pkey_pckmo handler implementation - kernel/git/stable/linux.git - Linux kernel stable tree
- CVEs — The Linux Kernel documentation
История обновлений статьи
- 08.08.2026 — Опубликована первая версия материала.
