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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2020-0022 — Исследовательский репозиторий, документирующий эксперименты с переполнением кучи Bluetooth в Android BlueFrag (CVE-2020-0022), включая анализ сбоев в GDB и попытки эксплуатации memcpy. | Kitploit
Инструменты/GitHubGitHub/idkwim/cve-2020-0022
Безопасность AndroidБезопасность BluetoothАнализ уязвимостейЭксплуатацияМобильная безопасностьСтатьи и ИсследованияЭксплуатация Бинарных Файлов
GitHubidkwim/cve-2020-0022

CVE-2020-0022

Исследовательский репозиторий, документирующий эксперименты с переполнением кучи Bluetooth в Android BlueFrag (CVE-2020-0022), включая анализ сбоев в GDB и попытки эксплуатации memcpy.

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

Популярное

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

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

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

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

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

CVE-2020-0022

Похоже, что в Android 9-6 схожая подсистема Bluetooth, а Android 5 и 4 отличаются.

Android 9.0

Эксперименты с BlueFrag

Патч:

https://android.googlesource.com/platform/system/bt/+/3cb7149d8fed2d7d77ceaa95bf845224c4db3baf

Ниже я достиг пропатченного условия. ОК, кажется, я понял, но почему-то не могу обрушить процесс.

хмммм

BlueFrag

Вообще-то, удалось передать знаковое значение длины в memcpy()``` 02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch reassemble_and_dispatch 02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch partial_packet->offset 40 packet->len 304 HCI_ACL_PREAMBLE_SIZE 4
02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch projected_offset 340 partial_packet->len 41
02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch got packet which would exceed expected length of 41. Truncating. 02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch memcpy packet->len 1 packet->offset 4 expr -3
02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch partial_packet->data 0xacb14580 partial_packet->data + partial_packet->offset 0xacb145a8 packet->data 0xa553e110 packet->data + packet->offset 0xa553e114
02-16 01:44:49.097 6423 6469 W bt_hci_packet_fragmenter: fragment_and_dispatch fragment_and_dispatch

Всё ещё нет краха, но должен быть.....


В приведённом выше примере при размере memcpy равном -3 это значение интерпретируется как беззнаковое целое (4294967293), и memcpy продолжается до возникновения ошибки страницы из-за немапированной памяти, после чего процесс должен завершиться.

Мой телефон 32-битный, возможно, поэтому. Мобильное устройство — Samsung S3 Neo+. Использую jemalloc как минимум в тестах на Android 9.0.```
¯\_(ツ)_/¯

Похоже, всё работает корректно

GDB log memcpy

Я подозреваю, что нужно открыть много соединений (на некоторое время) и как-то выделить много памяти, прежде чем это упадёт.

Мы передаём здесь 4294967293, почти 4 ГБ``` ¯_(ツ)_/¯

Swing и leommxj обнаружили это странное поведение Android 8:

https://translate.google.com/translate?hl=en&sl=auto&tl=en&u=https%3A%2F%2Fbestwing.me%2FAndroid-8.1-memcpy-func.html
(Переведено с китайского)

Возможно, это также затрагивает Android 9. Проверим.

На самом деле, может быть, это выполняется не в контексте процесса, а, возможно, в контексте прерывания. Тогда, возможно, ошибку можно
скрыть.
Скачать инструмент