Уязвимость в Docker, позволяющая выбраться из контейнера

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 30 May 2019.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,603
    Likes Received:
    3,590
    Reputations:
    693
    В инструментарии для управления изолированными Linux-контейнерами Docker выявлена уязвимость (CVE-2018-15664), которая при определённом стечении обстоятельств позволяет получить доступ к хост-окружению из контейнера при наличии возможности запуска своих образов в системе или при доступе к выполняемому контейнеру. Проблема проявляется во всех версиях Docker и остаётся неисправленной (предложен, но пока не принят, патч, реализующий приостановку работы контейнера на время выполнения операций с ФС).

    Уязвимость позволяет извлечь файлы из контейнера в произвольную часть ФС хост-системы при выполнении команды "docker cp". Извлечение файлов выполняется с правами root, что даёт возможность прочитать или записать любые файлы в хост-окружении, чего достаточно для получения контроля за хост-системой (например, можно переписать /etc/shadow).

    Атака может быть совершена только в момент выполнения администратором команды "docker cp" для копирования файлов в контейнер или из него. Таким образом атакующему необходимо каким-то образом убедить администратора Docker в необходимости выполнения этой операции и предугадать используемый при копировании путь. С другой стороны атака может быть совершена, например, при предоставлении облачными сервисами средств для копирования файлов конфигурации в контейнер, построенных с использованием команды "docker cp".

    Проблема вызвана недоработкой в применении функции FollowSymlinkInScope, вычисляющей абсолютный путь в основной ФС на основании относительного пути, учитывающего размещение контейнера. В процессе выполнения команды "docker cp" возникает кратковременное состояние гонки, при котором путь уже проверен, но операция ещё не выполнена. Так как копирование производится в контексте основной ФС хост-системы в указанный промежуток времени можно успеть подменить ссылку на другой путь и инициировать копирование данных в произвольное место файловой системы вне контейнера.

    Так как временное окно проявления состояния гонки сильно ограничено в подготовленном прототипе эксплоита при выполнении операций копирования из контейнера удалось добиться проведения успешной атаки в менее 1% случаев при цикличной подмене символической ссылки в пути, используемом в операции копирования (успешная атака была совершена после примерно 10 секунд попыток непрерывно в цикле скопировать файл командой "docker cp").

    При выполнении операции копирования в контейнер можно добиться повторяемой атаки по перезаписи файла в хост-системе всего в несколько итераций. Возможность атаки связана с тем, что при копировании в контейнер применяется концепция "chrootarchive", в соответствии с которой процесс archive.go извлекает архив не в chroot корня контейнера, а в chroot родительского каталога целевого пути, подконтрольного атакующему и не останавливает при этом выполнение контейнера (chroot используется как признак для эксплуатации состояния гонки).

     
    CKAP, seostock and stopxaker like this.
  2. psinipapka

    psinipapka New Member

    Joined:
    13 Oct 2011
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    Люксота опять без детектора контрольной суммы и списка обращений _увы
     
Loading...