The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

14.09.2018 18:28  Уязвимость в пакетном менеджере APK, позволяющая удалённо выполнить код в Alpine Linux

Исследователь безопасности Max Justicz, известный выявлением уязвимостей в репозиториях Packagist, NPM и RubyGems, опубликовал информацию о новой критической уязвимости в пакетном менеджере APK, применяемом в дистрибутиве Alpine Linux (используется по умолчанию для контейнеров Docker). Уязвимость несколько дней назад уже устранена в APK, а проект Alpine Linux выпустил обновление 3.8.1, в который включено данное исправление.

Атакующие, имеющие возможность совершить MITM-атаку или изменить пакеты на зеркале, могли подменить загружаемый пользователем apk-пакет и инициировать выполнение своего кода в системе c правами root. В Alpine Linux при доступе к штатным репозиториям по умолчанию не применяется TLS-шифрование канала связи, а используется только верификация целостности и источника пакета по цифровой подписи. К сожалению подобной проверки оказалось недостаточно, так как приводящая к уязвимости ошибка проявляется на стадии распаковки пакета, которая выполняется до проверки цифровой подписи.

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

Атакующий может создать в пакете ссылку с именем "link", указывающую, допустим, на файл "/etc/apk/commit_hooks.d/x". Данная ссылка будет распакована с временным именем "link.apk-new", но продолжит указывать на "/etc/apk/commit_hooks.d/x". Кроме символической ссылки в пакет можно поместить обычный файл тем же именем "link". Пакетный менеджер попытается сохранить его как "link.apk-new", но с данным именем уже присутствует символическая ссылка, что приведёт к созданию адресуемого через ссылку файла "/etc/apk/commit_hooks.d/x". Когда apk обнаружит несоответствие пакета проверочному хэшу, он удалит link.apk-new, но файл "/etc/apk/commit_hooks.d/x" останется в системе.

В итоге злоумышленник может переписать любой файл, в том числе разместить скрипт в каталоге /etc/apk/commit_hooks.d/, скрипты из которого вызываются перед завершением работы apk, что приведёт к выполнению кода до завершения обработки текущего пакета. Подобная особенность может использоваться для скрытия атаки. Изменив на лету память процесса apk через /proc/pid/mem, атакующий может добиться завершения apk всегда с нулевым кодом возврата, что позволяет успешно довести до конца процесс обновления или сборки Docker-контейнера и не вызвать подозрений.

  1. Главная ссылка к новости (https://justi.cz/security/2018...)
  2. OpenNews: Уязвимость, позволяющая удалённо выполнить код на сервере PHP-репозитория Packagist
  3. OpenNews: Уязвимость в Apache CouchDB, позволяющая совершить атаку на реестр пакетов NPM
  4. OpenNews: В RubyGems выявлена удалённо эксплуатируемая уязвимость
  5. OpenNews: Root-уязвимость из-за некорректных настроек в пакете nginx для Debian и Ubuntu
  6. OpenNews: Уязвимость в пакетном менеджере APT, проявляющаяся в конфигурациях с зеркалами
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: apt, alpine
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (1), 20:38, 14/09/2018 [ответить] [показать ветку] [···]    [к модератору]
  • +3 +/
    Пользуюсь voidlinux, но рад, что дружественный проект исправил уязвимость.
     
     
  • 2.2, Оффтоп (?), 20:50, 14/09/2018 [^] [ответить]    [к модератору]
  • –3 +/
    кстати про voidlinux и уязвимости. Они до сих пор не переехали с гитхаба?
     
     
  • 3.3, Аноним (1), 20:55, 14/09/2018 [^] [ответить]    [к модератору]
  • +/
    Да что-то они не в тренде.
     
  • 1.5, freehck (ok), 21:23, 14/09/2018 [ответить] [показать ветку] [···]    [к модератору]
  • –1 +/
    Выполнить любой код в Alpine? Ммм, значит дистр, ориентированный на безопасность. :)
     
     
  • 2.6, Аноним (6), 22:14, 14/09/2018 [^] [ответить]    [к модератору]
  • +2 +/
    интересно, как в этом плане обстоят дела у apt/dnf/zypper
     
     
  • 3.16, DerRoteBaron (ok), 23:30, 15/09/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    У dnf/zypper в их родной среде должно быть меньше проблем, так как rpm это не матрёшка из tgz/txz, а специфичный формат, содержащий подпись в заголовке и, если я правильно понял, подписывающей cpio-payload, а не файлики внутри по одному.
    И собственно инвалидность подписи проверяется ещё до начала транзакции
     
  • 1.7, ALex_hha (ok), 23:42, 14/09/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –6 +/
    > используется по умолчанию для контейнеров Docker

    Кем используется?

     
     
  • 2.11, anonimous (?), 08:57, 15/09/2018 [^] [ответить]    [к модератору]  
  • +/
    Всеми используется
     
     
  • 3.17, ALex_hha (ok), 02:29, 16/09/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Есть статистика или лишь перднуть?
     
     
  • 4.20, anonimous (?), 19:56, 16/09/2018 [^] [ответить]    [к модератору]  
  • +/
    Перднуть. А разве не так?
     
  • 4.22, your mom (?), 21:58, 16/09/2018 [^] [ответить]    [к модератору]  
  • +/
    в след раз почитай про сабж прежде, чем начнешь быковать.
     
  • 1.8, Аноним (8), 00:38, 15/09/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +3 +/
    Очень интересует, что употребляют люди, которые придумывают такие атаки, и можно ли эти вещества где-то купить без рецепта?
     
     
  • 2.13, test_test (?), 09:21, 15/09/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Ничего они не употребляют. Просто используют метод научного тыка, курят мануалы и комбинируют мелкие уязвимости в большие. Просто чуваки оч умные.
     
     
  • 3.14, trunk (?), 16:48, 15/09/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    А говоришь - не употребляют. И тут же - курят... маны. )
     
  • 1.9, Аноним (9), 04:25, 15/09/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +2 +/
    > проект Alpine Linux выпустил обновление 3.8.1, в который включено данное исправление.

    ...которое загружается тем самым пакетным менеджером?

     
  • 1.10, Аноним (10), 05:12, 15/09/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    rm -rf /* init скрипт запихнуть.
     
     
  • 2.12, anonimous (?), 08:59, 15/09/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Хорошая атака ничего не ломает и никак себя не выдает.
     
  • 1.15, нонима (?), 23:04, 15/09/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    >> ошибка проявляется на стадии распаковки пакета, которая выполняется до проверки цифровой подписи

    Л - логика. Распаковать и только потом проверять.

     
  • 1.18, Аноним (18), 09:55, 16/09/2018 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    Это значит, что пакетные менеджеры следует разбивать на часть, которая принимает... весь текст скрыт [показать]
     
     
  • 2.19, Аноним (19), 11:12, 16/09/2018 [^] [ответить]     [к модератору]  
  • +/
    А почему нельзя сделать, чтобы системное дерево и файлы принадлежало пользовател... весь текст скрыт [показать]
     
     
  • 3.21, your mom (?), 21:51, 16/09/2018 [^] [ответить]    [к модератору]  
  • +/
    они и так руту принадлежат
     
  • 1.23, sposob (?), 03:03, 17/09/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    ...стукнули буквы с квэрти, это самая ужасная новость за пол ночи...
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor