3.8 KiB
WWW2Exec - sips ICC Profile Out-of-Bounds Write (CVE-2024-44236)
{{#include ../../banners/hacktricks-training.md}}
Огляд
Уразливість запису за межами меж у парсері ICC профілів Apple macOS Scriptable Image Processing System (sips
) (macOS 15.0.1, sips-307) через неналежну валідацію поля offsetToCLUT
у тегах lutAToBType
(mAB
) та lutBToAType
(mBA
). Створений ICC файл може викликати нульові записи до 16 байтів за межами буфера купи, пошкоджуючи метадані купи або вказівники функцій і дозволяючи виконання довільного коду (CVE-2024-44236).
Уразливий код
Уразлива функція читає та обнуляє 16 байтів, починаючи з контролюваного зловмисником зсуву, не забезпечуючи, що він знаходиться в межах виділеного буфера:
// Pseudocode from sub_1000194D0 in sips-307 (macOS 15.0.1)
for (i = offsetToCLUT; i < offsetToCLUT + 16; i++) {
if (i > numberOfInputChannels && buffer[i] != 0)
buffer[i] = 0;
}
Виконується лише перевірка offsetToCLUT <= totalDataLength
. Встановивши offsetToCLUT == tagDataSize
, цикл індексує до 16 байтів за межами buffer
, пошкоджуючи сусідні метадані купи.
Кроки експлуатації
- Створити шкідливий
.icc
профіль:
- Побудувати заголовок ICC (128 байтів) з підписом
acsp
та єдиним записом тегуlutAToBType
абоlutBToAType
. - У таблиці тегів встановити
offsetToCLUT
рівнимsize
тегу (tagDataSize
). - Розмістити дані, контрольовані атакуючим, безпосередньо після блоку даних тегу, щоб перезаписати метадані купи.
- Запустити парсинг:
sips --verifyColor malicious.icc
- Пошкодження метаданих купи: OOB нульові записи перезаписують метадані аллокатора або сусідні вказівники, дозволяючи атакуючому захопити контроль над потоком виконання та досягти виконання довільного коду в контексті процесу
sips
.
Вплив
Успішна експлуатація призводить до віддаленого виконання довільного коду з правами користувача на системах macOS, що виконують вразливу утиліту sips
.
Виявлення
- Моніторинг передачі файлів за загальними протоколами (FTP, HTTP/S, IMAP, SMB, NFS, SMTP).
- Перевірка переданих файлів з підписом
acsp
. - Для кожного тегу
mAB
абоmBA
перевірити, чи дорівнює полеOffset to CLUT
Tag data size
. - Позначити як підозріле, якщо ця умова виконана.
Посилання
- ZDI blog: CVE-2024-44236: Вразливість віддаленого виконання коду в утиліті Apple macOS sips https://www.thezdi.com/blog/2025/5/7/cve-2024-44236-remote-code-execution-vulnerability-in-apple-macos
- Оновлення безпеки Apple жовтня 2024 року (патч для CVE-2024-44236) https://support.apple.com/en-us/121564
{{#include ../../banners/hacktricks-training.md}}