54 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 байтів, починаючи з контролюваного зловмисником зсуву, не забезпечуючи, що він знаходиться в межах виділеного буфера:
```c
// 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`, пошкоджуючи сусідні метадані купи.
## Кроки експлуатації
1. **Створити шкідливий `.icc` профіль:**
- Побудувати заголовок ICC (128 байтів) з підписом `acsp` та єдиним записом тегу `lutAToBType` або `lutBToAType`.
- У таблиці тегів встановити `offsetToCLUT` рівним `size` тегу (`tagDataSize`).
- Розмістити дані, контрольовані атакуючим, безпосередньо після блоку даних тегу, щоб перезаписати метадані купи.
2. **Запустити парсинг:**
```bash
sips --verifyColor malicious.icc
```
3. **Пошкодження метаданих купи:** 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}}