CVE-2019-15752

Docker Desktop Community Edition

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2021-11-03

Официальное описание

Docker Desktop Community Edition contains a vulnerability that may allow local users to escalate privileges by placing a trojan horse docker-credential-wincred.exe file in %PROGRAMDATA%\DockerDesktop\version-bin\.

🛡️
Технический анализ и план устранения

Суть уязвимости

Уязвимость связана с неправильной проверкой прав доступа к каталогу %PROGRAMDATA%\DockerDesktop\version-bin\ в Windows. Локальный злоумышленник с правами на запись в эту директорию может подменить легитимный исполняемый файл docker-credential-wincred.exe своей вредоносной версией. Когда Docker Desktop или пользователь с более высокими привилегиями запустит этот файл, злонамеренный код выполнится с повышенными правами, что приведет к эскалации привилегий.

Как исправить

Установите обновленную версию Docker Desktop, в которой данная уязвимость исправлена.

  1. Для Windows:

    • Обновите Docker Desktop Community до версии 2.1.0.1 или выше.
    • Скачайте установщик с официального сайта: https://www.docker.com/products/docker-desktop
    • Запустите установщик. Он автоматически обновит существующую версию.
  2. Проверка текущей версии: Откройте Docker Desktop, кликните на значок Docker в системном трее, выберите "About Docker Desktop". Убедитесь, что версия не ниже 2.1.0.1.

Временное решение

Если немедленное обновление невозможно, ограничьте права доступа к уязвимому каталогу, чтобы запретить неавторизованную запись.

  1. Измените права доступа (ACL) для каталога version-bin:

    • Откройте командную строку (cmd) или PowerShell от имени Администратора.
    • Выполните следующую команду, чтобы удалить разрешения на запись для всех пользователей, кроме SYSTEM и Администраторов:

    powershell icacls "%PROGRAMDATA%\DockerDesktop\version-bin" /reset icacls "%PROGRAMDATA%\DockerDesktop\version-bin" /grant "SYSTEM:(OI)(CI)F" /grant "Администраторы:(OI)(CI)F" /inheritance:r

    • Пояснение команды:
      • /reset — сбрасывает все существующие права.
      • /grant "SYSTEM:(OI)(CI)F" — дает полный контроль (F) системе.
      • /grant "Администраторы:(OI)(CI)F" — дает полный контроль администраторам.
      • /inheritance:r — отключает наследование разрешений от родительской папки.
  2. Проверка прав: После выполнения команд проверьте результат: powershell icacls "%PROGRAMDATA%\DockerDesktop\version-bin" В списке должны остаться только NT AUTHORITY\SYSTEM и BUILTIN\Administrators.