В ядре Ubuntu уязвимости в SCTP и OCFS2 допускают удалённый отказ в обслуживании и утечку данных

Ubuntu Logo

В ядре Ubuntu выявлена серия уязвимостей, которые позволяют удалённому атакующему вызвать отказ в обслуживании, обойти ограничения безопасности и получить доступ к чувствительным данным. Проблемы затрагивают LTS-версии от Ubuntu 14.04 до Ubuntu 20.04. Разработчики подготовили два обновления, закрывающих ошибки в стандартном ядре и в сборках для облачных платформ. Поскольку часть дефектов допускает атаку по сети без аутентификации, обновление актуально для большинства серверных конфигураций.

Детали уязвимостей

Наибольшее число ошибок сконцентрировано в транспортном протоколе SCTP, используемом в телекоммуникационных и корпоративных системах для надёжной передачи данных. В реализации SCTP недостаточно проверялась длина входящих блоков. В результате удалённый пользователь мог отправить такой пакет, что ядро начинало читать за границами буфера. В одном случае это приводит к панике и отказу в обслуживании, в другом - к раскрытию содержимого памяти, где могут находиться ключи, пароли или иные закрытые сведения. Причём для такой атаки не требуется предварительная аутентификация, поэтому службы, доступные из интернета, находятся под непосредственной угрозой.

Второй крупный блок уязвимостей относится к файловой системе OCFS2 для кластерных хранилищ. В ней несколько серверов одновременно работают с общим дисковым массивом и синхронизируют доступ через подсистему распределённых блокировок. В сетевых сообщениях этой подсистемы поле с количеством регионов использовалось без достаточной проверки. Подделав такое сообщение, атакующий может заставить ядро обратиться к невыделенной памяти и либо прочитать лишние данные, либо вызвать сбой узла. Отдельная ошибка в коде сравнения регионов приводила к чтению одной записи за пределами допустимого диапазона даже в корректных запросах.

Дополнительно закрыты уязвимости в NFS-сервере, в инфраструктуре файловых систем, в подсистеме Netfilter, отвечающей за фильтрацию пакетов, и в протоколе B.A.T.M.A.N. для ячеистых сетей. Проблема NFSv4.1 связана с двойным освобождением ссылки на сетевое соединение при ошибке создания обратного вызова. Такие дефекты обычно ведут к повреждению памяти и могут создать условия для выполнения произвольного кода в ядре. Ошибка в Netfilter была вызвана использованием небезопасного форматирования строк при разборе SIP-сигналов и потенциально приводила к переполнению стека. В кэше каталогов найдена проблема, из-за которой при нестандартном ограничении размера хэш-таблицы ядро обращалось к несуществующей области памяти. В драйвере контроллера памяти NVIDIA Tegra была перепутана логика проверки таймингов, однако последствия этого дефекта в бюллетене детально не раскрываются.

Большинство перечисленных ошибок получило оценку 9,8 или 9,1 балла по шкале CVSS. Для самых опасных из них вектор атаки сетевой, а для эксплуатации не требуется учётная запись. Это означает, что при наличии рабочего эксплойта атакующий может обойтись лишь отправкой вредоносного пакета. В официальных уведомлениях не сообщается об использовании этих уязвимостей в реальных атаках, поэтому исправления носят упреждающий характер. Вместе с тем высокая оценка и широта затронутых версий делают установку патчей безотлагательной.

Затронутыми оказались LTS-версии в диапазоне от Ubuntu 14.04 до Ubuntu 20.04. Это касается как старых серверов, работающих на ядре 4.4, так и более новых машин с ядром 5.4. Для облачных сред на базе Amazon Web Services и Google Cloud Platform выпущены отдельные обновления ядра, а вторая порция исправлений охватывает стандартное ядро, сборки для AWS, KVM и редакцию с поддержкой FIPS.

Исправления включены в бюллетени USN-8714-2 и USN-8725-1. После установки пакетов необходимо перезагрузить компьютер или сервер, поскольку изменения ядра вступают в силу только после перезапуска. Из-за изменения двоичного интерфейса ядра все сторонние модули нужно перекомпилировать. В Ubuntu стандартная процедура обновления сделает это автоматически при условии, что не удалены типовые метапакеты. Администраторам, использующим собственные модули, стоит выполнить пересборку до перезагрузки, чтобы не оставить систему без нужных драйверов.

Пользователям следует незамедлительно обновить ядро на всех серверах, где используется OCFS2 или принимается SCTP-трафик. Также необходимо обновить базовые образы виртуальных машин, чтобы новые инстансы создавались с защищённым ядром. После перезагрузки полезно проверить корректность загрузки новых версий и отсутствие ошибок в системных журналах.

Даже в долгосрочных версиях ядра со временем накапливаются ошибки, требующие исправлений. Уязвимости продолжают находить в сетевых протоколах и файловых системах спустя годы после выхода релиза. Поэтому плановое обновление ядра остаётся обязательным элементом обслуживания любой инфраструктуры.

Ссылки

Комментарии: 0