mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
54 lines
3.8 KiB
Markdown
54 lines
3.8 KiB
Markdown
# 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}}
|