• XSS.stack #1 – первый литературный журнал от юзеров форума

Анализ CVE-2025-24085 в CoreMedia iOS

k1ddddos

(L3) cache
Пользователь
Регистрация
02.05.2023
Сообщения
290
Реакции
43
Информация об уязвимости

CVE-2025-24085 - уязвимость типа "use-after-free" (использование после освобождения) в компоненте CoreMedia операционных систем Apple. Данная уязвимость была исправлена в iOS 18.3 путем улучшения механизмов управления памятью.

Согласно официальному описанию от Apple: "A use after free issue was addressed with improved memory management".

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


1. Функция _hevсbridgeAdvanceAcrossBBufDiscontiguity

На первом скриншоте представлено сравнение функции _hevсbridgeAdvanceAcrossBBufDiscontiguity между версиями iOS 18.2 и 18.3. Это основной патч, закрывающий уязвимость CVE-2025-24085.


screenshot1.jpg





Ключевые изменения:
  • В версии iOS 18.3 (справа) добавлена дополнительная проверка с использованием инструкций ccmp (conditional compare) и b.ne (branch if not equal).
  • Изменен адрес перехода с LAB_18fe0c1c8 на LAB_18fe2ff10.
  • Добавлена проверка на нулевое значение перед использованием указателя, что предотвращает классическую уязвимость use-after-free.

Данные изменения соответствуют описанию патча для CVE-2025-24085 как "улучшение управления памятью". Патч добавляет дополнительную валидацию перед использованием потенциально освобожденного указателя.

2. Функция _FigOSEventLinkServerMain (часть 1)

На втором скриншоте представлено сравнение функции _FigOSEventLinkServerMain между версиями iOS 18.2 и 18.3.

screenshot2.jpg



Ключевые изменения:
  • Изменены адреса переходов и метки в коде.
  • В версии iOS 18.3 (справа) добавлена инструкция str w0, [x22, #0x10], которая сохраняет значение в память.

Эти изменения являются частью общего улучшения безопасности, но сами по себе не представляют отдельную уязвимость. Они дополняют основной патч в функции _hevcbridgeAdvanceAcrossBBufDiscontiguity.

3. Функция _FigOSEventLinkServerMain (часть 2)
На третьем скриншоте представлено дополнительное сравнение функции _FigOSEventLinkServerMain между версиями iOS 18.2 и 18.3.


screenshot3.jpg



Ключевые изменения:
  • Изменены адреса переходов с LAB_18fe17ff4 на LAB_18fe3bd18.
  • Добавлена инструкция cbnz w0, LAB_18fe3bd28 (compare and branch if not zero).
  • Последовательность инициализации регистров (mov w0-w7) осталась неизменной.

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

Заключение
На основе проведенного анализа патчей между iOS 18.2 и 18.3 в компоненте CoreMedia можно сделать следующие выводы:
1. Основная уязвимость находится в функции _hevсbridgeAdvanceAcrossBBufDiscontiguity, где был исправлен классический use-after-free с помощью дополнительных проверок перед использованием памяти.
2. Изменения в функции _FigOSEventLinkServerMain являются частью общего улучшения безопасности и дополняют основной патч.
 
Последнее редактирование:
Информация об уязвимости

CVE-2025-24085 - уязвимость типа "use-after-free" (использование после освобождения) в компоненте CoreMedia операционных систем Apple. Данная уязвимость была исправлена в iOS 18.3 путем улучшения механизмов управления памятью.

Согласно официальному описанию от Apple: "A use after free issue was addressed with improved memory management".

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


1. Функция _hevсbridgeAdvanceAcrossBBufDiscontiguity

На первом скриншоте представлено сравнение функции _hevсbridgeAdvanceAcrossBBufDiscontiguity между версиями iOS 18.2 и 18.3. Это основной патч, закрывающий уязвимость CVE-2025-24085.


Посмотреть вложение 107442




Ключевые изменения:
  • В версии iOS 18.3 (справа) добавлена дополнительная проверка с использованием инструкций ccmp (conditional compare) и b.ne (branch if not equal).
  • Изменен адрес перехода с LAB_18fe0c1c8 на LAB_18fe2ff10.
  • Добавлена проверка на нулевое значение перед использованием указателя, что предотвращает классическую уязвимость use-after-free.

Данные изменения соответствуют описанию патча для CVE-2025-24085 как "улучшение управления памятью". Патч добавляет дополнительную валидацию перед использованием потенциально освобожденного указателя.

Статус: 1day - публично раскрытая и исправленная уязвимость.

2. Функция _FigOSEventLinkServerMain (часть 1)

На втором скриншоте представлено сравнение функции _FigOSEventLinkServerMain между версиями iOS 18.2 и 18.3.

Посмотреть вложение 107443


Ключевые изменения:
  • Изменены адреса переходов и метки в коде.
  • В версии iOS 18.3 (справа) добавлена инструкция str w0, [x22, #0x10], которая сохраняет значение в память.

Эти изменения являются частью общего улучшения безопасности, но сами по себе не представляют отдельную уязвимость. Они дополняют основной патч в функции _hevcbridgeAdvanceAcrossBBufDiscontiguity.

3. Функция _FigOSEventLinkServerMain (часть 2)
На третьем скриншоте представлено дополнительное сравнение функции _FigOSEventLinkServerMain между версиями iOS 18.2 и 18.3.


Посмотреть вложение 107444


Ключевые изменения:
  • Изменены адреса переходов с LAB_18fe17ff4 на LAB_18fe3bd18.
  • Добавлена инструкция cbnz w0, LAB_18fe3bd28 (compare and branch if not zero).
  • Последовательность инициализации регистров (mov w0-w7) осталась неизменной.

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

Заключение
На основе проведенного анализа патчей между iOS 18.2 и 18.3 в компоненте CoreMedia можно сделать следующие выводы:
1. Основная уязвимость (1day) находится в функции _hevсbridgeAdvanceAcrossBBufDiscontiguity, где был исправлен классический use-after-free с помощью дополнительных проверок перед использованием памяти.
2. Изменения в функции _FigOSEventLinkServerMain являются частью общего улучшения безопасности и дополняют основной патч.

Итоговый статус: 1day - публично раскрытая и исправленная уязвимость.
CoreMedia была взята с прошивок под устройство iPhone XS. К сожалению у меня нету устройства iPhone XS поэтому poc пока что не будет
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Итоговый статус: 1day - публично раскрытая и исправленная уязвимость.
1-day термин применяется к эксплойтам, а не к информации... Когда раскрывают полную информацию об уязвимости это называется "Full Disclosure". Вот как ssd-disclosure.com делает в блоге. То что ты делаешь не как не относится к 1-дей, точней говоря у тебя работа проделана в сторону "Full Disclosure". Но там еще обычно хотя бы триггер PoC выкладывают ну или более полную подробную информацию. Для статьи маловато информации. Показал бы чтоли .... в начале как ты бинарники подготовил для сравнения, а там и полноценный анализ - статья бы вышла. ( Максимально подробное описание + процесс анализа )
 
Последнее редактирование:
1-day термин применяется к эксплойтам, а не к информации... Когда раскрывают полную информацию об уязвимости это называется "Full Disclosure". Вот как ssd-disclosure.com делает в блоге. То что ты делаешь не как не относится к 1-дей, точней говоря у тебя работа проделана в сторону "Full Disclosure". Но там еще обычно хотя бы триггер PoC выкладывают ну или более полную подробную информацию. Для статьи маловато информации. Показал бы чтоли .... в начале как ты бинарники подготовил для сравнения, а там и полноценный анализ - статья бы вышла. ( Максимально подробное описание + процесс анализа )
А понял путаюсь в терминах чуть чуть, спасибо что поправил, следующую статью сделаю более детальную весь процесс с самого начала. POC подготовить не удастся пока не куплю айфон бушный, возьму IPhone XS исходя из отчетов Apple
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А понял путаюсь в терминах чуть чуть, спасибо что поправил, следующую статью сделаю более детальную весь процесс с самого начала. POC подготовить не удастся пока не куплю айфон бушный, возьму IPhone XS исходя из отчетов Apple
Ты можешь начать писать статьи и делать сплойты для старых айфонов (iOS) на первых порах, чтобы руку набить. Не забывай что айфон может в кирпич превратится. Так же для некоторых экспериментов иногда нужно рутированное устройство. И джайлбрек не всегда можно найти. Я бы на твоем месте скупал бы все версии айфонов по несколько копий (2-3), на случай если он случайно в кирпич превратится в ходе экспериментов.
 
Информация об уязвимости

CVE-2025-24085 - уязвимость типа "use-after-free" (использование после освобождения) в компоненте CoreMedia операционных систем Apple. Данная уязвимость была исправлена в iOS 18.3 путем улучшения механизмов управления памятью.

Согласно официальному описанию от Apple: "A use after free issue was addressed with improved memory management".

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


1. Функция _hevсbridgeAdvanceAcrossBBufDiscontiguity

На первом скриншоте представлено сравнение функции _hevсbridgeAdvanceAcrossBBufDiscontiguity между версиями iOS 18.2 и 18.3. Это основной патч, закрывающий уязвимость CVE-2025-24085.


Посмотреть вложение 107442




Ключевые изменения:
  • В версии iOS 18.3 (справа) добавлена дополнительная проверка с использованием инструкций ccmp (conditional compare) и b.ne (branch if not equal).
  • Изменен адрес перехода с LAB_18fe0c1c8 на LAB_18fe2ff10.
  • Добавлена проверка на нулевое значение перед использованием указателя, что предотвращает классическую уязвимость use-after-free.

Данные изменения соответствуют описанию патча для CVE-2025-24085 как "улучшение управления памятью". Патч добавляет дополнительную валидацию перед использованием потенциально освобожденного указателя.

2. Функция _FigOSEventLinkServerMain (часть 1)

На втором скриншоте представлено сравнение функции _FigOSEventLinkServerMain между версиями iOS 18.2 и 18.3.

Посмотреть вложение 107443


Ключевые изменения:
  • Изменены адреса переходов и метки в коде.
  • В версии iOS 18.3 (справа) добавлена инструкция str w0, [x22, #0x10], которая сохраняет значение в память.

Эти изменения являются частью общего улучшения безопасности, но сами по себе не представляют отдельную уязвимость. Они дополняют основной патч в функции _hevcbridgeAdvanceAcrossBBufDiscontiguity.

3. Функция _FigOSEventLinkServerMain (часть 2)
На третьем скриншоте представлено дополнительное сравнение функции _FigOSEventLinkServerMain между версиями iOS 18.2 и 18.3.


Посмотреть вложение 107444


Ключевые изменения:
  • Изменены адреса переходов с LAB_18fe17ff4 на LAB_18fe3bd18.
  • Добавлена инструкция cbnz w0, LAB_18fe3bd28 (compare and branch if not zero).
  • Последовательность инициализации регистров (mov w0-w7) осталась неизменной.

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

Заключение
На основе проведенного анализа патчей между iOS 18.2 и 18.3 в компоненте CoreMedia можно сделать следующие выводы:
1. Основная уязвимость находится в функции _hevсbridgeAdvanceAcrossBBufDiscontiguity, где был исправлен классический use-after-free с помощью дополнительных проверок перед использованием памяти.
2. Изменения в функции _FigOSEventLinkServerMain являются частью общего улучшения безопасности и дополняют основной патч.
После первоначального анализа патча CoreMedia (diff между версиями CoreMedia18_2_1 и CoreMedia18_3), я ошибочно определил, что уязвимость CVE-2025-24085 (use-after-free) находилась в компоненте обработки HEVC-видео. При более тщательном изучении патча понял, что уязвимость CVE-2025-24085 (use-after-free) на самом деле находилась в компоненте XPC-коммуникации, конкретно в функции _figXPCConnection_processServerReply.

1. Функция _figXPCConnection_processServerReply содержит изменения в управлении памятью.
Изменение типа переменной с code *pcVar4 на bool bVar4

2. Patch diffing:

Diff:
void _figXPCConnection_processServerReply(long param_1,undefined8 param_2) {


  uint uVar1;


  uint uVar2;


  undefined1 uVar3;


- code *pcVar4;


+ bool bVar4;


  int iVar5;


  int iVar6;


  long lVar7;


- ulong uVar8;


- undefined8 uVar9;


- long lVar10;


- undefined8 *puVar11;


...


+ if (uVar1 == 0) {


+   puVar9 = (undefined8 *)0x0;


+ }


+ else {


+   local_f8 = *(long *)(*(long *)(param_1 + 0x10) + 0x10);


+   local_110 = 0x8200402;


+   local_10c = "figXPCConnection_validateReplyType";


+   local_104 = 0x800;


+   local_fa = 0x820;


+   local_f0 = 0x820;


+   local_102 = param_1;


+   local_ee = uVar8;


+   puVar9 = (undefined8 *)


+   func_0x000192ff1220(uVar1,0,local_d8,0x80,&mach_header_18fd4c000,uVar10,uVar3,


+   "<< FigXPC >> %s: xpc error in server reply; connection %p %s: %s"


+   ,&local_110,0x2a);


+ }


+ bVar4 = puVar9 == local_d8;


Diff:
- pcVar4 = (code *)SoftwareBreakpoint(0xc471,0x18fe76bd4);

- (*pcVar4)();


3. Описание CVE-2025-24085 "use after free issue was addressed with improved memory management" точно соответствует изменениям в этой функции.

CVE-2025-24085: Уязвимость use-after-free в компоненте XPC-коммуникации (_figXPCConnection_processServerReply)
CVE-2025-31200: Уязвимость в компоненте обработки HEVC-видео (_hevcbridgeAdvanceAcrossBBufDiscontiguity), связанная с обработкой медиафайлов
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх