Есть такой класс серверов, про которые в любой крупной организации говорят одинаково: "трогать нельзя, работает". Они крутятся годами, держат критические нагрузки, обеспечивают SAP, базы данных, производственные процессы - и перезапустить их даже на десять минут означает согласовывать окно обслуживания с несколькими командами, откладывать финансовые транзакции или останавливать технологическую линию. Именно для этого класса систем технология live-патчинга ядра существует - и именно для них 9 апреля 2026 года вышел бюллетень SUSE-SU-2026:1221-1.

Это 67-й по счёту live patch для SUSE Linux Enterprise 12 SP5, закрывающий семь уязвимостей ядра. Семь CVE, ни одной перезагрузки.

Что такое Live Patch 67 и кому он адресован

Патч применяется к ядру версии 4.12.14-122.255, которое установлено на системах под управлением SUSE Linux Enterprise Server 12 SP5, включая варианты для SAP-приложений и высокопроизводительных вычислений. Пакет обновления называется kgraft-patch-4_12_14-122_255-default версии 15-2.1 и поддерживает архитектуры x86_64, ppc64le и s390x.

SLE 12 SP5 - финальный сервис-пак в линейке SUSE Linux Enterprise 12. Общая поддержка для него завершилась, однако через Long Term Service Pack Support (LTSS) он покрыт до октября 2027 года, а через LTSS Core - до 2030 года. Это означает, что в корпоративном ландшафте подобных систем по-прежнему немало, и они продолжают получать обновления безопасности, в том числе через live-патчинг.

Факт выпуска 67-го по счёту патча сам по себе красноречив. Это не разовая операция, а планомерный процесс, который продолжается годами - и говорит о том, что SUSE выполняет обязательства перед пользователями систем с долгим жизненным циклом именно так, как и обещала.

Семь уязвимостей, их природа и степень риска

Бюллетень фиксирует семь CVE, каждая из которых относится к разным подсистемам ядра. Вместе они образуют характерный срез проблем, типичных для производственных Linux-систем с интенсивной сетевой нагрузкой и виртуализацией.

CVE-2023-53794 закрывает проблему use-after-free в реализации CIFS - клиентского компонента для работы с сетевыми хранилищами Windows. Уязвимость связана с некорректной проверкой состояния сессии при переподключении. CVSS-оценка по версии SUSE составляет 7.5 по шкале 3.1, при этом по CVSS 4.0 этот же баг оценивается в 7.7 - вектор сетевой, условия эксплуатации требуют прав обычного пользователя. Для серверов, монтирующих корпоративные файловые хранилища, это реальная угроза.

CVE-2025-39973 затрагивает драйвер сетевого адаптера i40e - серии карт Intel, широко используемых в корпоративных серверах и облачных инсталляциях. Уязвимость состоит в отсутствии валидации параметра ring_len, что при определённых условиях позволяет спровоцировать некорректное поведение драйвера.

CVE-2025-40018 касается IPVS - подсистемы балансировки нагрузки в ядре Linux, которую активно использует Kubernetes и другие системы оркестрации. Уязвимость проявляется при очистке сетевых пространств имён: регистрация модуля ip_vs_ftp должна откладываться до завершения операций, но этого не происходило.

CVE-2025-71120 - пожалуй, наиболее тревожная из семи. Она относится к подсистеме SUNRPC, которая лежит в основе NFS и других RPC-механизмов. Уязвимость допускала разыменование нулевого указателя при нулевой длине gss_token в функции gss_read_proxy_verf. Вектор атаки сетевой, прав не требует, итогом может быть отказ в обслуживании - а для NFS-сервера это означает потерю доступа к файловой системе для всех клиентов. SUSE оценивает эту CVE в 8.7 по CVSS 4.0, то есть выше, чем остальные в этом наборе.

CVE-2026-22999 и CVE-2026-23074 - уже знакомые проблемы сетевого планировщика, которые разбирались в предыдущих бюллетенях SUSE этого цикла. Первая связана с некорректным освобождением существующего класса в sch_qfq, вторая обеспечивает соблюдение архитектурного ограничения для teql - он должен использоваться только как корневая дисциплина очереди. То, что обе CVE закрываются теперь и через live-патч для 12 SP5, говорит об одновременном покрытии сразу нескольких поколений производственного ядра.

CVE-2026-23209 исправляет обработку ошибок при создании macvlan-интерфейсов - виртуальных сетевых устройств, часто применяемых в средах контейнеризации и виртуализации. При сбое в macvlan_common_newlink() восстановление ошибки происходило некорректно, что могло приводить к нестабильному состоянию сетевого стека.

Как работает технология kGraft под капотом

Для понимания того, почему все эти уязвимости можно закрыть без перезагрузки, стоит взглянуть на механизм, который это обеспечивает. SUSE реализует live-патчинг через kGraft - технологию, которая использует инфраструктуру ftrace для замены функций ядра на лету.

При компиляции ядра GCC с включённым профилированием функций вставляет в начало каждой функции 5-байтовую инструкцию вызова. При штатной загрузке эти инструкции заменяются на NOP - операции "ничего не делать". Когда kGraft начинает применение патча, первый байт заменяется на INT3 - инструкцию точки прерывания, которая обеспечивает атомарность замены. Затем прописывается адрес новой, исправленной функции.

Сложность в том, что в момент применения патча разные потоки выполнения могут находиться внутри старой или новой версии функции одновременно. kGraft решает эту проблему через механизм, аналогичный RCU (read-copy-update): для каждого потока устанавливается флаг на входе и выходе из ядра. Старая функция всегда вызывает другие старые функции, новая - только новые. Когда все потоки получают флаг "новой вселенной", патчинг завершён, трамплины удаляются, и производительность возвращается к исходному уровню - за исключением незначительного удлинения перехода для каждой патченой функции.

Прогресс применения патча виден через флаг в /sys/kernel/kgraft/in_progress: значение 1 означает, что ещё есть спящие процессы, не пересёкшие точку безопасности, значение 0 - патчинг завершён. Инструмент kgr blocking показывает конкретный список процессов, блокирующих завершение. В ряде случаев - особенно при наличии стороннего ПО с ядерными потоками, не готовыми к kGraft - патчинг может не завершиться автоматически, и тогда требуется консультация с поддержкой SUSE.

Что означает Live Patch 67 для долгосрочных корпоративных инсталляций

Порядковый номер 67 - не просто цифра. Каждый live patch в этой серии означает, что производственная система, установленная несколько лет назад и не перезагружавшаяся с тех пор, получила очередное закрытие реальных уязвимостей без плановых окон обслуживания и без риска потери накопленного состояния процессов.

Для SLE 12 SP5 с его ядром 4.12.14, которому уже много лет, это особенно показательно. Ядро, формально устаревшее по меркам upstream, продолжает получать тщательно портированные исправления безопасности - именно потому, что SUSE строит бизнес вокруг долгосрочной поддержки корпоративных инсталляций. LTSS до 2027 года и LTSS Core до 2030 - это не маркетинговые обещания, а живая практика, подкреплённая вот такими бюллетенями.

Для команд, эксплуатирующих SLE 12 SP5, действия очевидны: применить патч через zypper с командой zypper in -t patch SUSE-SLE-Live-Patching-12-SP5-2026-1221=1 и контролировать завершение через флаг kgraft/in_progress. При этом стоит держать в голове, что у каждого kGraft-патча есть срок действия, после которого новых live-обновлений для этой версии ядра выпускаться не будет. Команда zypper lifecycle покажет актуальные даты прямо в консоли - без лишних походов в документацию.

Семь CVE закрыты. Системы продолжают работать. Именно так выглядит безопасность без лишних слов.