CVE: CVE-2026-68451
Продукт: Linux Kernel
Дата публикации: 13.08.2026
Критичность: HIGH
CVSS: 7.8 (3.1)
EPSS: 0,13%; процентиль 3,21%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Уязвимость CVE-2026-68451 затрагивает подсистему криптографии zcrypt в архитектуре s390. Функция cca_ecc2protkey() использовала поле длины из токена ключа ECC для копирования данных в блок параметров CPRB без проверки границ. Это позволяло вызвать переполнение буфера. Исправление добавляет валидацию длины токена перед выполнением операции копирования.
Основные характеристики
Оценка риска: HIGH (CVSS 3.1: 7.8). Вектор атаки: локальный (AV:L). Сложность эксплуатации: низкая (AC:L). Требуемые привилегии: низкие (PR:L). Взаимодействие пользователя: не требуется (UI:N). Влияние на конфиденциальность, целостность и доступность: высокое (C:H/I:H/A:H). Уязвимость локализована в файле drivers/s390/crypto/zcrypt_ccamisc.c и затрагивает исключительно архитектуру s390 (IBM Z).
Какие продукты и версии затронуты
Linux Kernel для архитектуры s390. Согласно тегу стабильности в коммите исправления (Cc: [email protected] # 5.10+), уязвимость присутствует в версиях ядра начиная с 5.10 и выше, вплоть до версий, содержащих исправление. Конкретные номера версий зависят от веток стабильных релизов, в которые был применен патч. Уязвимость не затрагивает другие архитектуры (x86, ARM и т.д.), так как код относится исключительно к драйверу s390.
Причина уязвимости
Функция cca_ecc2protkey() извлекала значение длины из поля len структуры токена ключа (eccprivkeytoken) и использовала его для определения размера данных, подлежащих копированию в блок параметров CPRB. Исходный код не проверял, превышает ли указанная в токене длина доступное пространство в выделенном блоке параметров. Это приводило к тому, что при указании завышенного значения длины происходило копирование данных за пределы выделенного буфера, нарушая целостность памяти ядра.
Как работает атака
Атакующий, имеющий локальный доступ к системе с правами, достаточными для вызова криптографических операций через интерфейс zcrypt, формирует запрос на обработку закрытого ключа ECC. В запросе передается токен ключа с модифицированным полем длины (len), значение которого превышает размер доступного буфера в блоке параметров CPRB. При обработке этого запроса функция cca_ecc2protkey() доверяет указанной длине и выполняет копирование данных, выходя за границы выделенной памяти. Это может привести к повреждению структур данных ядра, падению системы (DoS) или, в случае успешного контроля потока выполнения, к повышению привилегий.
Условия успешной эксплуатации
- Система работает на архитектуре IBM s390 (Z-series).<br>2. В ядре включена поддержка подсистемы zcrypt (CONFIG_ZCRYPT).<br>3. Атакующий имеет локальный доступ к системе.<br>4. Атакующий обладает правами, позволяющими инициировать криптографические операции через интерфейс zcrypt (обычно это требует прав пользователя, имеющего доступ к устройствам zcrypt, что соответствует вектору PR:L).<br>5. Отсутствие исправления в текущей версии ядра.
Возможный сценарий атаки
Локальный пользователь или процесс с ограниченными привилегиями обращается к криптографическому устройству zcrypt для выполнения операции с закрытым ключом ECC. В запросе передается специально сформированный токен ключа, в котором поле длины установлено в значение, превышающее размер буфера блока параметров CPRB. Ядро, обрабатывая этот запрос в функции cca_ecc2protkey(), не проверяет границы и копирует данные из токена в буфер CPRB, выходя за его пределы. Это приводит к переполнению буфера. В худшем случае атакующий может использовать это для перезаписи критических структур данных ядра или управления потоком выполнения кода, получая контроль над системой.
Есть ли публичный эксплойт
На момент публикации информации о CVE-2026-68451 публичные эксплойты или PoC (Proof of Concept) в открытом доступе не зафиксированы. Однако, учитывая механику уязвимости (переполнение буфера по управляемой длине) и наличие исправления в ядре, создание PoC технически выполнимо для исследователей безопасности. Отсутствие публичного эксплойта не означает отсутствие риска эксплуатации в закрытых средах.
Признаки эксплуатации
Специфичные индикаторы компрометации (IOC) для этой уязвимости не определены, так как эксплуатация происходит на уровне ядра и может маскироваться под легитимные криптографические операции. Общие признаки, которые могут указывать на попытку эксплуатации:<br>- Нестабильность работы системы, зависания или перезагрузки (kernel panic) при выполнении криптографических операций.<br>- Необычная активность процессов, обращающихся к устройствам zcrypt (/dev/zcrypt/*).<br>- Появление новых процессов с повышенными привилегиями (root) без видимой причины.<br>Эти признаки неспецифичны и могут быть вызваны другими причинами.
Как обнаружить атаку
Для обнаружения потенциальных попыток эксплуатации или наличия уязвимости рекомендуется:<br>1. Проверить версию установленного ядра Linux.<br>2. Мониторить логи ядра (dmesg, /var/log/kern.log) на наличие сообщений об ошибках в подсистеме zcrypt или падениях ядра (kernel oops/panic).<br>3. Использовать средства аудита (auditd) для отслеживания вызовов системных функций, связанных с доступом к криптографическим устройствам.<br>4. Проверить наличие патча в исходном коде ядра или в пакете ядра, поставляемом дистрибутивом.
Как проверить свою версию
Для проверки версии ядра Linux используйте следующие команды:<br><br>
bash<br>uname -r<br><br><br>Для получения более подробной информации о ядре:<br><br>bash<br>uname -a<br><br><br>Для проверки версии ядра через файл /proc:<br><br>bash<br>cat /proc/version<br><br><br>Сравните полученную версию с версией, содержащей исправление. Если версия ядра старше исправленной и система работает на архитектуре s390, система уязвима.Исправление
Основной метод устранения уязвимости — обновление ядра Linux до версии, содержащей исправление. Исправление добавляет проверку длины токена ключа перед копированием:<br><br>
c<br>if (keylen > PARMBSIZE - sizeof(struct aureqparm))<br> return -EINVAL;<br><br><br>Обновите ядро через менеджер пакетов вашего дистрибутива (например, apt, yum, dnf) или скомпилируйте ядро из исходников с применением патча. После обновления перезагрузите систему для загрузки нового ядра.Временные меры защиты
До применения обновления ядра можно рассмотреть следующие временные меры:<br>1. Ограничить доступ к устройствам zcrypt (/dev/zcrypt/*) только для необходимых процессов и пользователей.<br>2. Если возможно, отключить использование криптографических функций zcrypt, требующих обработки закрытых ключей ECC, или перенести их на другие аппаратные модули безопасности (HSM), не использующие уязвимый драйвер.<br>3. Использовать механизмы изоляции (cgroups, namespaces) для ограничения ресурсов процессов, работающих с zcrypt.<br>Эти меры не устраняют уязвимость, но могут усложнить эксплуатацию.
Как проверить устранение уязвимости
После обновления ядра проверьте, что новая версия загружена:<br><br>
bash<br>uname -r<br><br><br>Убедитесь, что версия соответствует исправленной. Также можно проверить наличие патча в исходном коде ядра, если вы компилируете ядро самостоятельно. Проверьте логи ядра на отсутствие ошибок, связанных с zcrypt, после перезагрузки.Вывод
CVE-2026-68451 представляет собой серьезную угрозу для систем на архитектуре s390, использующих подсистему zcrypt. Уязвимость позволяет локальному пользователю с низкими привилегиями вызвать переполнение буфера в ядре, что может привести к повышению привилегий или отказу в обслуживании. Рекомендуется незамедлительно обновить ядро Linux до версии, содержащей исправление. Временные меры, такие как ограничение доступа к устройствам zcrypt, могут снизить риск, но не заменяют обновление.
Официальные источники
- NVD — CVE-2026-68451
- FIRST EPSS — CVE-2026-68451
- s390/zcrypt: Validate length for CCA ECC private key requests - kernel/git/stable/linux.git - Linux kernel stable tree
- s390/zcrypt: Validate length for CCA ECC private key requests - kernel/git/stable/linux.git - Linux kernel stable tree
- s390/zcrypt: Validate length for CCA ECC private key requests - kernel/git/stable/linux.git - Linux kernel stable tree
- s390/zcrypt: Validate length for CCA ECC private key requests - kernel/git/stable/linux.git - Linux kernel stable tree
- s390/zcrypt: Validate length for CCA ECC private key requests - kernel/git/stable/linux.git - Linux kernel stable tree
- s390/zcrypt: Validate length for CCA ECC private key requests - kernel/git/stable/linux.git - Linux kernel stable tree
- s390/zcrypt: Validate length for CCA ECC private key requests - kernel/git/stable/linux.git - Linux kernel stable tree
- s390/zcrypt: Validate length for CCA ECC private key requests - kernel/git/stable/linux.git - Linux kernel stable tree
История обновлений статьи
- 15.08.2026 — Опубликована первая версия материала.
- 22.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
