Критическая уязвимость в библиотеке xz-utils

CVE-2024-3094: уязвимость в библиотеке XZ Utils


Апрель 04, 2024


Библиотека XZ Utils предназначена для сжатия данных и используется в большинстве Linux-дистрибутивов. 29 марта 2024 года в ней была обнаружена закладка, которая при определенных обстоятельствах может дать злоумышленнику доступ root к системе.

Уязвимость не затрагивает контейнерную ОС Axiom Linux, на которой основан легковесный Java-контейнер Axiom Runtime Container, однако в качестве меры предосторожности мы заменили пакет библиотеки на более раннюю версию и внедрили патч.

Узнайте больше о данной CVE и о том, как обновить библиотеку в Axiom Linux, в нашей статье.

Механизм действия закладки

Вредоносный код внедряется в пакет xz на этапе сборки. Уязвимость обнаружена в версиях 5.6.0 и 5.6.1 библиотеки. Если программа запущена с именем процесса /usr/sbin/sshd, активируется полезная нагрузка (на данным момент ведется расследование других возможных вариантов активации закладки).

Через механизм IFUNC полезная нагрузка читает пакет, отправленный злоумышленником: если пакет подписан специальным секретным ключом, полезная нагрузка выполняет его содержимое на уязвимой системе.

Пакет liblzma оказывается в sshd в Linux-дистрибутивах, использующих systemd, поскольку они линкуют к sshd библиотеку libsystemd, включающую в себя liblzma.

Данная уязвимость расценивается как критическая, так как она позволяет аутентифицированному злоумышленнику получить доступ root к системе.

Злоумышленник, внедривший закладку в xz-utils, готовился к этому несколько лет, зарабатывая репутацию в Open Source сообществе и входя в доверие к главному разработчику библиотеки. Злоумышленник или группа злоумышленников также добились того, чтобы в некоторых Linux-дистрибутивах были слинкованы sshd и libsystemd, поскольку именно через libsystemd в sshd оказывается копия закладки (но вредоносный код не успел проникнуть в стабильные сборки).

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

Какие Linux-дистрибутивы в зоне риска

Воздействию уязвимости подвержены файлы sshd, слинкованные с libsystemd и glibc, поэтому если вы используете не Axiom Linux, а другой дистрибутив, ваша система находится в зоне риска при выполнении следующих условий:

  • Используется Linux-дистрибутив на базе glibc с systemd (в настоящее время неизвестно, влияет ли уязвимость на дистрибутивы, использующие musl),
  • Используется версия xz 5.6.0 или 5.6.1 (эти версии используются в «плавающих» (rolling) релизах, стабильные релизы не затронуты),
  • Запущен общедоступный процесс OpenSSH.

Почему Axiom Linux не подвержен воздействию уязвимости

Axiom Linux как на базе glibc, так и musl, не использует systemd (среди зависимостей которой есть xz/liblzma). Это значит, что sshd не линкуется с xz/liblzma через systemd. Кроме того, поскольку все сборки Axiom Linux относятся к стабильному релизу, в них изначально была версия библиотеки xz 5.2.9. Поэтому Axiom Linux не подвержен воздействию данной CVE.

Почему всё равно следует обновить образ Axiom Linux?

Поскольку пока неизвестно, есть ли в пакете xz-utils другие закладки, в качестве меры предосторожности мы снизили версию библиотеки до 5.2.5 (до начала любых коммитов со стороны злоумышленника) и включили CVE-2022-1271 патч в эту версию. Чтобы удостовериться, что установлена именно та версия xz пакета, которая не содержит коммитов злоумышленника, используйте следующую команду:

apk update && apk upgrade xz* && apk version xz*

Убедитесь, что версия соответствует 5.2.9_p525 (Axiom 23-LTS). p525 означает, что фактическая версия пакета — 5.2.5.

Если вы используете axiom-linux-python или axiom-linux-gcc, следует немедленно обновить образ, чтобы установить патч. Другие контейнерные образы на базе Axiom Linux не содержат эту библиотеку. Однако если вы используете XZ Utils в своих контейнерах, мы рекомендуем пересобрать их для обновления версии библиотеки.

Author image

Александр Дроздов

Инженер по РБПО и информационной безопасности Axiom JDK

Команда Axiom JDK roman.karpov@axiomjdk.ru Команда Axiom JDK logo Axiom Committed to Freedom 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67 Команда Axiom JDK 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67