Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2019-2215 | Kitploit
Инструменты/GitHubGitHub/codecat007/cve-2019-2215
Безопасность AndroidПовышение привилегийФреймворки для эксплойтовАнализ уязвимостейЭксплуатацияМобильная безопасностьЭксплуатация Бинарных Файлов
GitHubcodecat007/cve-2019-2215

CVE-2019-2215

Репозиторий
26 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2019-2215

Следующая проблема существует в ветке android-msm-wahoo-4.4-pie репозитория https://android.googlesource.com/kernel/msm (и, возможно, других):

В драйвере binder в файле /drivers/android/binder.c происходит use-after-free элемента wait структуры binder_thread.

Как описано в вышестоящем коммите: “binder_poll() передаёт waitqueue thread->wait, на котором можно заснуть для получения работы. Когда поток, использующий epoll, явно завершается через BINDER_THREAD_EXIT, waitqueue освобождается, но она никогда не удаляется из соответствующей структуры данных epoll. Когда процесс впоследствии завершается, код очистки epoll пытается получить доступ к waitlist, что приводит к use-after-free.”

Следующий proof-of-concept вызовет UAF-крах в сборке ядра с KASAN (из первоначального отчёта об ошибке в вышестоящем ядре на https://lore.kernel.org/lkml/[email protected]/): #include <fcntl.h> #include <sys/epoll.h> #include <sys/ioctl.h> #include <unistd.h>

root@kitploit:~
    #define BINDER_THREAD_EXIT 0x40046208ul

    int main()
    {
            int fd, epfd;
            struct epoll_event event = { .events = EPOLLIN };

            fd = open("/dev/binder0", O_RDONLY);
            epfd = epoll_create(1000);
            epoll_ctl(epfd, EPOLL_CTL_ADD, fd, &event);
            ioctl(fd, BINDER_THREAD_EXIT, NULL);
    }

Эта проблема была исправлена в декабре 2017 года в ядре 4.14 LTS [1], в ядре AOSP Android 3.18 [2], в ядре AOSP Android 4.4 [3] и в ядре AOSP Android 4.9 [4], но Pixel 2 с последним бюллетенем безопасности всё ещё уязвим на основе анализа исходного кода.

Другие устройства, которые, по-видимому, уязвимы на основе анализа исходного кода (если не указано иное, имеются в виду версии 8.x):

  1. Pixel 2 с Android 9 и предварительной версией Android 10 (https://android.googlesource.com/kernel/msm/+/refs/heads/android-msm-wahoo-4.4-q-preview-6/)
  2. Huawei P20
  3. Xiaomi Redmi 5A
  4. Xiaomi Redmi Note 5
  5. Xiaomi A1
  6. Oppo A3
  7. Moto Z3
  8. Телефоны LG на Oreo (согласно сайту, работают на том же ядре)
  9. Samsung S7, S8, S9

У нас есть доказательства того, что эта ошибка используется в реальных условиях. Поэтому для данной ошибки установлен 7-дневный срок раскрытия. По истечении 7 дней или после того, как патч станет широко доступен (в зависимости от того, что наступит раньше), отчёт об ошибке станет виден публике.

Подтверждено, что данный proof-of-concept работает на Pixel 2 со сборкой walleye_kasan-userdebug 10 QP1A.191105.0035899767, вызывая крах KASAN. Прилагаются код proof-of-concept на C и new.out. Прилагается вывод консоли KASAN.

Я получил техническую информацию от TAG и внешних сторон об эксплойте для Android, который приписывается группе NSO. Эти сведения включали факты об ошибке и методологии эксплойта, в том числе:

  • Это повышение привилегий ядра с использованием уязвимости use-after-free, доступное изнутри песочницы Chrome.
  • Предположительно, эта ошибка использовалась или продавалась группой NSO.
  • Она работает на Pixel 1 и 2, но не на Pixel 3 и 3a.
  • Она была исправлена в ядре Linux >= 4.14 без присвоения CVE.
  • CONFIG_DEBUG_LIST ломает примитив.
  • CONFIG_ARM64_UAO затрудняет эксплуатацию.
  • Уязвимость эксплуатируется в процессах рендеринга Chrome в домене SELinux 'isolated_app' Android, что позволяет предположить, что уязвимым компонентом является Binder.
  • Эксплойт требует незначительной или нулевой настройки под конкретное устройство.
  • Список затронутых и незатронутых устройств и их версий, и другое. Неполный список доступен в описании этой проблемы.

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

В настоящее время у нас нет образца эксплойта. Без образцов мы не смогли ни подтвердить временную шкалу, ни полезную нагрузку.

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

Я приложил локальный proof-of-concept эксплойта, чтобы продемонстрировать, как эту ошибку можно использовать для получения произвольного чтения/записи в ядре при локальном запуске. Для эксплуатации CVE-2019-2215 требуется только выполнение кода ненадёжного приложения. Я также приложил скриншот (success.png) работы POC на Pixel 2 под управлением Android 10 с уровнем патча безопасности сентябрь 2019 (google/walleye/walleye:10/QP1A.190711.020/5800535:user/release-keys).

Заявление производителя от Android:

"Данная проблема оценивается как High severity на Android и сама по себе требует установки вредоносного приложения для потенциальной эксплуатации. Любые другие векторы, например через веб-браузер, требуют связывания с дополнительным эксплойтом. Мы уведомили партнёров Android, и патч доступен в общем ядре Android. Устройства Pixel 3 и 3a не уязвимы, а устройства Pixel 1 и 2 получат обновления для этой проблемы в рамках октябрьского обновления."

Скачать инструмент