К обсуждениям

Linux TIPC: netns exit не должен крутиться в busy loop

Редакция VOne Технологии

Практическая проверка TIPC namespace cleanup по свежему kernel advisory: runtime build, upstream commit, безопасный fixture и чёткий stop-rule без production-нагрузки.

Узкая граница TIPC namespace cleanup

Для TIPC namespace cleanup проверяется не общий статус Linux, а один конкретный переход: tipc_exit_net ожидал pending UDP bearer work циклом atomic_read плюс cond_resched; при high-priority task или CONFIG_PREEMPT_NONE cond_resched мог стать NOP и тратить CPU до soft lockup. Версионная граница статьи — присутствие stable commit из GHSA-8w3x-69pj-572x либо документированного backport поставщика в загруженном kernel build. Собственный предмет этой страницы выражен как «профиль cleanup work count × preemption mode × waiter state × wakeups × CPU time». Он не совпадает с соседними parser, filesystem, socket или workqueue задачами. Карточка от 4 сентября служит свежим сигналом; она не доказывает, что конкретный узел затронут или подвергался атаке.

Runtime-карта для TIPC namespace cleanup

Сначала соберите uname/build ID, distribution package revision, loaded module/feature state и mapping vendor advisory → stable commit без hostnames и пользовательских данных. Затем заполните «профиль cleanup work count × preemption mode × waiter state × wakeups × CPU time» для фактически загруженного ядра. У TIPC namespace cleanup каждое поле отвечает на отдельный вопрос о достижимости и последовательности внутренних состояний; UNKNOWN нельзя заменять предположением по номеру дистрибутива. Сопоставьте vendor changelog с commit 522d1d950b9e3b68190a6de7534827c8dccedb73 и сохраните package provenance. Имена машин, адреса, пользовательский трафик и дампы памяти в runtime-карту не входят.

Контроль без production-нагрузки

Для этой ветки допустим следующий bounded test: Instrumented test kernel создаёт пустой synthetic netns и controlled pending-work counter; waiter должен sleep и проснуться на atomic_dec_and_test/wake_up_var. До опыта для TIPC namespace cleanup фиксируют нулевые side-effect counters и hash fixture, после — удаляют fixture и повторно проверяют baseline. Искомый результат сформулирован предметно: Ожидание не занятое, wakeup не теряется, counter достигает нуля, namespace teardown завершается в budget. Один boot, один test case или отсутствие crash не заменяют наблюдение названных состояний. Если официального selftest нет, выполняют только source/backport audit и оставляют runtime verdict UNKNOWN.

Решение по stable fix

План исправления для TIPC namespace cleanup: Установить поддерживаемое ядро с указанным stable fix либо подтверждённым backport поставщика; до этого исключить достижимый component path по change control. PASS ставится только при подтверждённом build provenance и выполнении условия «Ожидание не занятое, wakeup не теряется, counter достигает нуля, namespace teardown завершается в budget.». UPDATE-REQUIRED означает, что commit/backport отсутствует при достижимой функции. NOT-REACHABLE описывает только проверенный module path, но не весь kernel. После обновления повторяют именно «профиль cleanup work count × preemption mode × waiter state × wakeups × CPU time» и обычный smoke компонента. При расхождении исходников, package metadata и running build результат остаётся UNKNOWN без попытки силового воспроизведения.

Stop-rule для TIPC namespace cleanup

Остановка обязательна: Не удалять production netns, не повышать priority, не создавать network load и не принимать один low-CPU sample за доказательство. Для TIPC namespace cleanup нельзя расширять права, длительность, packet volume, mount scope или concurrency только ради наблюдаемого сбоя. Advisory GHSA-8w3x-69pj-572x описывает исправленную техническую возможность, но не историю данного сервера. Не публикуйте trigger bytes, рабочие идентификаторы, network captures или exploit recipe. Если безопасный upstream selftest недоступен, достаточный следующий шаг — обновление по vendor bulletin и проверка health, а не самостоятельный атакующий образец.

Доказательство и очистка

Минимальный evidence package для владельца TIPC namespace cleanup: kernel config/build, initial work count, sleep/wakeup counters, CPU duration, teardown result и commit. Добавьте Moscow timestamp, expected/actual, ссылку на GHSA-8w3x-69pj-572x и stable commit, а также результат cleanup. Уникальность отчёта задаёт сочетание «профиль cleanup work count × preemption mode × waiter state × wakeups × CPU time» с конкретным контролем «Instrumented test kernel создаёт пустой synthetic netns и controlled pending-work counter; waiter должен sleep и проснуться на atomic_dec_and_test/wake_up_var.». Полные журналы, IP, usernames, credentials и пользовательские payload исключаются. Такой пакет позволяет независимо проверить backport и решение, но не обещает совместимость иной ветки, отсутствие прошлой эксплуатации, массовость наблюдения, индексацию или позиции.

Материал подготовлен редакцией VOne с помощью автоматизированного черновика. Факты и границы вывода сверены 4 сентября 2026 года по прямой advisory и первичному источнику. Текст написан самостоятельно; опасные действия и реальные пользовательские данные не использовались.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.