Уязвимость в Microsoft PowerPoint
Уязвимость в Microsoft PowerPoint
Категория: Программы Теги: Уязвимости Опубликовано: 3 июля 2025

Уязвимость BDU:2025-07073 (CVE-2025-47175) Microsoft PowerPoint

Уязвимость BDU:2025-07073 (CVE-2025-47175) класса Use-After-Free (UAF) в Microsoft PowerPoint позволяет злоумышленнику выполнить произвольный код через специально созданный PPTX-файл. При обработке объектов в памяти (например, фигур или текстовых элементов) PowerPoint некорректно освобождает память, но продолжает использовать указатель на неё. Это приводит к контролируемому повреждению памяти, что можно использовать для перенаправления потока выполнения на вредоносный код.

Анализ уязвимости

Уровень опасности: 7.8 HIGH
Вектор атаки: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

  • AV:L (Attack Vector: Local) — Требуется локальное взаимодействие (открытие файла пользователем).

  • AC:L (Attack Complexity: Low) — Низкая сложность эксплуатации.

  • PR:N (Privileges Required: None) — Не требуются привилегии.

  • UI:R (User Interaction: Required) — Необходимо действие пользователя (открытие файла).

  • S:U (Scope: Unchanged) — Уязвимость не выходит за пределы процесса PowerPoint.

  • C:H/I:H/A:H (Confidentiality/Integrity/Availability: High) — Полное нарушение конфиденциальности, целостности и доступности системы.


Условия эксплуатации

  1. Целевое ПО:

    • PowerPoint 2016/2019, Microsoft 365 Apps for Enterprise, Office LTSC 2021/2024 (включая версии для macOS).

  2. Действия пользователя:

    • Открытие вложенного PPTX-файла из фишингового письма или скачивание с скомпрометированного ресурса.

  3. Среда атаки:

    • Не требуется доступ к внутренней сети или панелям управления. Достаточно локальной системы.


Анализ кода эксплойта

Рассмотрим Python-скрипт генератора вредоносного PPTX для понимания работы вектора атаки с использованием уязвимости CVE-2025-47175:

def create_exploit_pptx(filename, shape_id, shape_name, trigger_text): 
    slide_xml = f''' 
    <p:sp> 
        <p:nvSpPr> 
            <p:cNvPr id="{shape_id}" name="{shape_name}"/> 
        </p:nvSpPr> 
        <p:txBody> 
            <a:t>{trigger_text}</a:t> 
        </p:txBody> 
    </p:sp>''' 
    # ... упаковка в ZIP-архив с структурированным XML 

Ключевые элементы:

  • Манипуляция с p:nvSpPr: Указание невалидного id и name для фигуры, что провоцирует ошибку при освобождении памяти.

  • Триггерный текст: Строка trigger_text вызывает обработку объекта, который уже удален из памяти.

  • Структура PPTX: Эксплойт имитирует валидный PPTX-файл, обходя статические анализаторы.

Этапы работы эксплойта:

  1. Пользователь открывает файл evil.pptx.

  2. PowerPoint загружает фигуру с некорректными атрибутами id и name.

  3. При рендеринге текста (p:txBody) происходит обращение к освобожденной памяти.

  4. Контролируемое повреждение памяти → выполнение шеллкода.


Возможные последствия эксплуатации

  1. Удаленное выполнение кода (RCE):

    • Установка бэкдоров, криптомайнеров, шпионского ПО.

  2. Кража данных:

    • Доступ к паролям, документам, токенам сессий через Mimikatz или аналоги.

  3. Боковое перемещение:

    • Если PowerPoint запущен под учетной записью администратора, возможен захват домена.

  4. Рансомизация:

    • Шифрование файлов с требованием выкупа.


Методы защиты

1. Патчинг и управление уязвимостями

  • Обновления: Установка июньского патча.

2. Правила для Suricata/IPS

Для сетевого периметра (почтовые шлюзы, прокси):

alert http $EXTERNAL_NET any -> $HOME_NET any ( 
    msg: "CVE-2025-47175: Suspicious PPTX Download"; 
    flow: established, to_client; 
    http.header; 
    content: "Content-Disposition: attachment"; 
    content: ".pptx"; 
    content: "|0d 0a|"; 
    metadata: service http; 
    sid: 202547175; 
    rev: 1; 
) 

Где размещать:

  • Почтовые шлюзы: Блокировка вложений .pptx от ненадежных отправителей.

  • Веб-прокси: Анализ загружаемых файлов с внешних ресурсов.

Важно: IPS не эффективны после доставки файла на конечное устройство.

3. AppLocker и ограничение прав

  • Блокировка макросов:

    <AppLockerPolicy> 
      <RuleCollection Type="Dll" EnforcementMode="AuditOnly"/> 
      <RuleCollection Type="Exe" EnforcementMode="Enabled"> 
        <FilePathRule Id="1" Name="Block PowerPoint" Action="Deny"> 
          <Conditions> 
            <FilePathCondition Path="C:\Program Files\Microsoft Office\root\Office16\POWERPNT.EXE"/> 
          </Conditions> 
        </FilePathRule> 
      </RuleCollection> 
    </AppLockerPolicy> 
  • Запуск PowerPoint в изоляции: Использование Microsoft Defender Application Guard для Office.

4. Обучение пользователей

  • Не открывать вложения от неизвестных отправителей.

  • Проверять расширения файлов (.pptx vs .pptx.exe).

Алексей Черемных Алексей Черемных
17