59 уязвимостей ядра Linux и неудаляемый бэкдор GSocket: главные угрозы недели

Восемь уязвимостей ядра Linux с подтверждёнными рабочими эксплойтами повышения привилегий до суперпользователя — таков результат трёхмесячного исследования лаборатории Microsoft FORGE Lab. Всего исследователи отправили 59 публичных отчётов в апстрим, получили 33 идентификатора CVE, а исправления для 38 сообщений уже слиты в основную ветку ядра. Средний возраст обнаруженного дефекта составил 8,1 года, а один из них прожил в коде минимум 21 год. Параллельно Microsoft задокументировала массовое превращение легитимного инструмента удалённого администрирования GSocket в стойкий бэкдор: число устройств с соответствующими детекциями выросло на 356,2% за полгода, а сам канал связи переживает устранение исходной уязвимости веб-приложения.

📊 Цифры недели: 26 502 сырых находки сканера → 11 769 кандидатов → 621 случай с доказательством → 59 отчётов; 33 CVE, из них 24 с оценкой CVSS не ниже 7.0; 8 подтверждённых локальных эксплойтов до root; медиана 41 день от патча до релиза; рост детекций GSocket на 356,2% с марта по август; 87,1% инцидентов GSocket — веб-хостинг.

🔬 Как ИИ-сканер MDASH превратил 26 тысяч находок в 59 отчётов

Сканирование подсистем ядра Linux проходило с конца мая до середины июня 2026 года. Команда состояла из одного штатного исследователя и одного стажёра. Под прицел попали сетевой стек, файловые системы и модули безопасности — критерий отбора был прагматичным: компоненты, критичные для безопасности и не зависящие от специализированного оборудования, что упрощало проверку в эмуляторе QEMU. Два сервера конфигураций 64 ядра и 256 ГБ памяти, а также 32 ядра и 128 ГБ памяти выдали 26 502 сырых срабатывания примерно за две недели.

Дальше началась самая дорогая часть работы. Фильтрация по уровням уверенности сканера и отдельные быстрые агенты-скринеры сократили пул до 11 769 кандидатов. Агенты генерации доказательств концепции попытались воспроизвести дефекты в QEMU, и лишь 621 случай получил подтверждающий эксплойт. Эксперты разобрали эти случаи, установили первопричины, объединили дубликаты и подготовили отчёты. Из 621 случая 266 (42,8%) делили первопричину с другими, 163 (26,2%) не были отправлены из-за ограниченного влияния на безопасность, а 133 (21,4%) оказались уже известны или исправлены.

Этап воронки Количество Что происходило
Сырые срабатывания 26 502 Две недели машинного сканирования
Кандидаты после скрининга 11 769 Отсев низкоуверенных находок
Случаи с доказательством 621 Воспроизведение в QEMU
Публичные отчёты 59 9,5% от подтверждённых случаев
Присвоенные CVE 33 24 из них — High и выше
Слитые исправления 38 Половина принята с первой попытки

Распределение вычислительной нагрузки между моделями показывает специализацию: на сканирование кода ушло 71,1% токенов Sonnet 4.6, 20,1% GPT-5.4 и 7,1% GPT-5.5. Для воспроизведения дефектов картина иная — 77,3% токенов GPT-5.5, 13,2% Opus 4.6 и 9,4% специализированной GPT-5.5-cyber. Первый публичный отчёт вышел 27 июня, спустя более пяти недель после старта сканирования. К 1 сентября 55 из 59 сообщений попали в публичные списки рассылки, остальные четыре прошли приватный канал и были опубликованы к середине октября. Путь от первого патча до релиза основной ветки занял медианные 41 день при максимуме 108 дней.

🔓 Восемь CVE с рабочими root-эксплойтами и дефект возрастом восемь лет

Из 33 присвоенных идентификаторов 24 получили оценку не ниже 7.0 по шкале CVSS версии 3.1. Для восьми уязвимостей исследователи подтвердили работающие локальные эксплойты повышения привилегий в контролируемых лабораторных условиях — часть сценариев требовала нестандартных настроек или отключённых механизмов защиты от эксплуатации.

Идентификатор Подсистема Тип дефекта
CVE-2026-64554 net/ipv6 Использование после освобождения при фрагментации IPv6 в мосте
CVE-2026-64563 lib/rhashtable Использование после освобождения при обходе хеш-таблицы
CVE-2026-64580 net/ipv6 Переполнение счётчика ссылок вниз в маршрутизации IPsec
CVE-2026-74561 net/ipv4 Обход списка маршрутов без блокировки при замене next-hop
CVE-2026-74562 net/ipv4 Гонка проверок маршрута с удалением при замене next-hop
CVE-2026-89789 drivers/net Освобождение таблиц поиска драйвера GTP при активном трафике
CVE-2026-98222 security/keys Переполнение кучи из-за 16-битной длины параметров ключа
CVE-2026-98364 net/xfrm Использование сетевого устройства без удержания ссылки

Наиболее показателен CVE-2026-64563 — однострочная ошибка сброса состояния в разделяемой изменяемой хеш-таблице rhashtable. До 2018 года функция остановки обхода всегда обнуляла сохранённый указатель на последнюю посещённую запись. Коммит 5d240a8936f6 перенёс этот сброс в функцию проверки возобновления, но реализовал его только на одной из двух ветвей. Если во время паузы таблица меняла размер и старый массив корзин освобождался, функция возвращала код повторной попытки, не обнулив указатель. Следующий шаг обхода читал уже освобождённую память.

Дефект прожил восемь лет, потому что для срабатывания требовалось совпадение трёх условий в одном обходе: вызывающий код должен останавливать и возобновлять один итератор, изменение размера должно освобождать старый массив корзин именно в этой паузе, а запись по сохранённому указателю должна быть удалена и освобождена до возобновления. Из примерно двух десятков файлов ядра, использующих этот интерфейс, паузу с возобновлением допускали только два: дамп сокетов TIPC и диагностика сокетов Netlink. Эксплуатируемым оказался второй — он доступен непривилегированным пользователям на стандартных ядрах, а пользовательское пространство управляет паузой между порциями ответа через вызов получения сообщения.

⚠️ Почему это критично: CVE-2026-64563 давал стабильное локальное повышение привилегий на Linux и затрагивал Android даже при принудительном режиме SELinux. Специальные конфигурации ядра и пространства имён пользователей не требовались. Подделанный указатель на структуру сокета превращался в ограниченную 64-битную запись в память ядра — этого хватило для полного захвата системы. Исправление свелось к одной строке обнуления указателя.

🌐 GSocket: легитимная утилита, которая выживает после патчинга

Схема атаки начинается с эксплуатации доступного из интернета веб-приложения, что даёт выполнение команд в контексте процесса веб-сервера. Обычно такой доступ исчезает после установки заплатки или перезапуска службы. Злоумышленники решают проблему иначе: через curl загружают установочный скрипт, который определяет архитектуру системы, подбирает подходящий клиент релейной сети и размещает его в доступных для записи или размещённых в памяти каталогах вроде /dev/shm. Дальше клиент устанавливает исходящее соединение к публичной релейной сети Global Socket Relay Network.

Ключевая особенность — идентификация по разделяемому секрету вместо адреса или имени узла. Скомпрометированный сервер и оператор оба подключаются наружу, а релей сопоставляет две сессии и передаёт сквозной зашифрованный трафик на базе протокола Secure Remote Password из OpenSSL. Жертве не нужен публичный адрес или открытый входящий порт, оператору не нужно содержать собственный управляющий сервер. Блокировка отдельного адреса или домена не разрывает доступ, поскольку используется сторонняя релейная инфраструктура с меняющимися адресами. Секрет может доставляться через Telegram, Discord или веб-перехватчик, а любой, кто им владеет, подключается заново с любого совместимого клиента.

Показатель телеметрии Значение
Рост устройств с детекциями (март–август) 356,2%
Веб-приложения и хостинг среди инцидентов 87,1%
PHP-приложения и панель cPanel 63,9%
Окружения Apache 24,3%
Образование и наука среди пострадавших 30,7%
Технологии и телекоммуникации 22,9%

Маскировка построена на имитации системных процессов: полезная нагрузка запускалась под именами вроде systemd-remount-d и defunct, а через подмену нулевого аргумента представлялась как поток ядра kaluad. Стойкость обеспечивалась заданиями cron, модулями systemd, правками профилей оболочки, сторожевыми процессами и избыточными копиями. Отмечены подмена временных меток через touch, удаление промежуточных файлов и очистка истории команд. Для повышения привилегий от учётной записи веб-службы до суперпользователя отдельные группировки пробовали эксплуатировать CVE-2026-43284 из семейства Dirty Frag, затрагивающий компоненты esp4, esp6 и rxrpc. Публичный код эксплойта доступен.

Ранние наблюдения SANS от 20 марта добавляли деталь: установщик создавал каталог ~/.ssh/putty, помещал внутрь исполняемый файл с именем id_rsa и хранил разделяемый секрет в файле, имитирующем ключ SSH. Индикаторы для поиска включают домены gsocket.io, cdn.gsocket.io и gsgg.b-cdn.net, каталоги вида /dev/shm/.gs-0, файлы .gsn_ora и defunct.service. Microsoft детектирует злоупотребление как HackTool:Linux/GSocket.A и HackTool:Linux/GsNetcat.A, при этом сам инструмент остаётся легитимным открытым проектом.

🛡️ Приоритеты защиты и остальные сюжеты бюллетеня

Главный операционный вывод: установка заплатки на веб-приложение не является завершённым устранением инцидента, если на узле уже состоялось выполнение команд. Клиент релейной сети работает независимо от взломанного приложения и продолжает переподключаться после перезагрузки. Расследование обязано охватывать поиск бинарных файлов, всех механизмов стойкости, похищенных секретов и следов повышения привилегий.

Направление Конкретное действие
Ограничение исходящего трафика Запрет по умолчанию, разрешить только нужные направления
Укрепление среды выполнения Монтировать временные каталоги без права исполнения
Аудит стойкости Проверить cron, модули systemd, профили оболочки
Контроль маскировки Сверять пути исполняемых файлов у «потоков ядра»
Приоритет патчинга ядра Закрыть локальное повышение привилегий на внешних узлах
Мониторинг поведения Отслеживать аномальные дочерние процессы веб-служб

Авторы исследования подчёркивают дисбаланс: две недели машинного сканирования против более четырёх человеко-месяцев на подготовку отчётов и пять месяцев на согласование исправлений. Узким местом остаётся человеческий труд — и у охотников за дефектами, и у сопровождающих подсистем. Больше вычислительных токенов даёт больше найденных ошибок, но не гарантирует защищённости системы: просканирована лишь малая доля ядра, а устранение всех найденных дефектов не равно доказательству безопасности.

Помимо двух разобранных сюжетов в недельный бюллетень вошли шпионское ПО Falcon для браузеров, кампании с применением искусственного интеллекта, вымогательское ПО и оборот украденных учётных данных. Отдельного внимания заслуживает инцидент с 4 837 захваченными учётными записями GitHub, через которые злоумышленник запускал похитителя секретов непрерывной интеграции более чем в 1 806 репозиториях. Microsoft также описала атаки на цепочку поставок инструментов программирования через отравленные наборы данных и контрольные точки моделей, приводящие к удалённому выполнению кода, и продемонстрировала возможность превращения модели в скрытого агента правкой менее десяти нейронов.

🎯 Что проверить в первую очередь: наличие файлов gs-netcat и gsocket, включая скрытые каталоги .ssh и временные размещения; неожиданные команды запуска в cron и профилях оболочки; процессы, имитирующие имена потоков ядра; исходящий трафик к релейной инфраструктуре и обращения к домену .gsocket; актуальность заплаток ядра против Dirty Frag.

Ноябрьский вторник обновлений Microsoft закрыл 1 252 уязвимости, включая одну эксплуатируемую нулевого дня и 68 критических. На этом фоне история с ядром Linux выглядит особенно показательно: восемь подтверждённых путей к суперпользователю в коде, который обслуживает большую часть мировой серверной инфраструктуры, найдены силами двух человек за три месяца. Скорость обнаружения выросла на порядок, скорость устранения — нет.

«При достаточном количестве глаз все ошибки всплывают на поверхность. Но всплывшая ошибка — это ещё не исправленная ошибка, а исправленная — ещё не защищённая система».

— Эрик Рэймонд, исследователь открытого программного обеспечения, автор закона Линуса

13.11.2026, 01:11