Практический аудит Linux IPVS после исправления проверки checksum ICMPv6: границы пути, отрицательный контроль и безопасные счётчики в отдельном namespace.
Граница исправления: IPVS ICMPv6 input path
В ip_vs_in_icmp_v6 отсутствовала проверка checksum входящих клиентских ICMPv6-пакетов; исправление добавляет её до дальнейшей обработки. Это узкая граница IPVS ICMPv6 input path: совпадение версии Linux, семейства устройства или общего симптома ещё не устанавливает достижимость именно этого path. Карточка GHSA-mp45-vjm2-gvhg сопоставляет проблему с CVE-2026-80901, а stable commit показывает фактическое изменение upstream. Сначала подтверждают загруженное ядро и наличие backport, затем конфигурацию компонента и только потом runtime-ветку. Отсутствие сбоя в одном запуске не равно PASS, а наличие advisory не означает инцидент. Все UNKNOWN сохраняют до получения provenance; выводы не расширяют на другие drivers или версии.
Артефакт контроля для IPVS ICMPv6 input path
Основной рабочий артефакт — таблица namespace × IPVS service × ICMPv6 checksum state × validation counter × forwarding result. В исходную строку входят kernel build и commit, включённые IPVS modules, тестовый IPv6 service, namespace routes, checksum offload state и исходные counters. Каждое поле получает фактическое значение, TRUE/FALSE/UNKNOWN и ссылку на воспроизводимый источник: package digest, runtime symbol, trace marker либо selftest output. Версия из репозитория или панели не заменяет хеш загруженного kernel image. IP, usernames, ключи, содержимое buffers, пользовательские файлы и длинные raw logs исключают; достаточно относительных ids и агрегированных counters.
Обратимый тест: linux-ipvs-icmpv6-checksum-validation-check
В двух временных network namespaces подать один корректный и один намеренно отмеченный тестовым генератором некорректный ICMPv6 frame, не маршрутизируя их за пределы veth-пары. Перед стартом фиксируют SHA-256 fixture, baseline counters и конкретный rollback либо snapshot. Меняют один фактор, ограничивают число итераций и deadline, после чего выполняют штатный teardown и повторно снимают те же показатели. Положительный контроль подтверждает работоспособность harness; отрицательный должен остановиться на ожидаемой границе, а не просто не упасть. Реальные пользовательские данные, внешняя сеть и production credentials в fixture не входят.
PASS и решение по CVE-2026-80901
PASS: Корректный контроль достигает ожидаемой ветки, некорректный checksum отбрасывается до IPVS transformation, а счётчики namespace и tracepoint подтверждают разные исходы. Рекомендуемое действие: Перейти на stable kernel с исправлением; временно ограничить вход к затронутому IPVS edge доверенным источником, не отключая checksum validation. UPDATE-REQUIRED ставят при affected runtime или отсутствии подтверждённого backport. NOT-REACHABLE допустим только для проверенного entry point, а не для всего продукта. UNKNOWN нужен при расхождении binary, config и документации. После штатного обновления повторяют тот же узкий control и один нормальный smoke-test, не совмещая это с firmware, network, storage или policy changes: иначе причинность результата потеряется.
Stop-rule для IPVS ICMPv6 input path
Не использовать внешние адреса, production virtual services либо массовую генерацию пакетов; прекратить при выходе трафика из namespace или изменении host routing. После первого неожиданного warning, timeout, sanitizer report или изменения за пределами fixture не повышают нагрузку, права и объём входа. Тест не должен превращаться в воспроизведение атаки: не ищут дополнительные malformed variants, не публикуют trigger bytes, memory dumps, адреса и конфигурацию инфраструктуры. Если безопасной модели недостаточно для решения, работу останавливают и передают владельцу kernel/platform минимальный evidence pack; advisory используется как граница проверки, а не как утверждение о прошлом событии.
Минимальный пакет сопровождения IPVS ICMPv6 input path
Передать владельцу следует только: kernel digest, список загруженных IPVS modules, namespace topology, два checksum состояния, counters до/после и SHA-256 тестового генератора. Добавляют московское время, expected/actual, прямые ссылки на GHSA-mp45-vjm2-gvhg и stable commit, а также владельца rollback. Перед отправкой удаляют абсолютные домашние пути, hostnames, IP, serial numbers, pid, session identifiers, cookies, токены и payloads. Пакет должен позволять проверить ровно один заявленный инвариант, но не раскрывать среду. Он не доказывает отсутствие прошлой эксплуатации, применимость к иной сборке, массовость пользовательской боли, поисковый спрос, индексацию либо будущие позиции страницы.
Материал подготовлен редакцией VOne с помощью автоматизированного черновика. Факты и границы вывода сверены 5 сентября 2026 года по прямой advisory и первичному stable commit. Текст написан самостоятельно; опасные действия и реальные пользовательские данные не использовались.
Источники и проверка
- GitHub Advisory GHSA-mp45-vjm2-gvhg проверено 2026-09-05
- Linux stable commit for IPVS ICMPv6 input path проверено 2026-09-05
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.