Новости
Patch Tuesday сентябрь 2026: критические уязвимости Word, Excel и RAW-файлов
Microsoft закрыла уязвимости в Word, Excel и обработчиках RAW-изображений в рамках сентябрьского Patch Tuesday.
8 сентября 2026 года Microsoft выпустила плановое сентябрьское обновление безопасности .NET, закрыв три высокоопасные уязвимости в компоненте Microsoft.DiaSymReader.Native. Все три получили оценку CVSS 8.8 (High) и связаны с некорректным разбором PDB-файлов — файлов отладочных символов, которые загружают отладчики, IDE и CI/CD-системы при сборке и диагностике приложений.
Коротко: CVE-2026-69439 (Portable PDB, heap overflow), CVE-2026-71328 (MSFZ PDB, out-of-bounds write) и CVE-2026-69522 (PDB, out-of-bounds write) — все с CVSS 8.8 — позволяют выполнить код или повысить привилегии через вредоносный PDB-файл. Затронуты .NET 8, 9, 10, 11 RC1 на Windows. Фикс: .NET 8.0.31, 9.0.20, 10.0.12, пакет DiaSymReader.Native ≥ 18.9.0-beta1.26405.2.

PDB (Program Database) — это формат файлов отладочных символов, созданный Microsoft. PDB-файл содержит информацию, которая связывает скомпилированный машинный код с исходным кодом: имена переменных, адреса функций, нумерацию строк. Без PDB отладчик не может показать, в какой именно строке кода произошла ошибка — он видит только адреса в памяти.
Существуют два варианта формата. Windows PDB (MSFZ PDB) — традиционный формат для Visual C++ и классического .NET Framework, хранит символы в файлах .pdb рядом с .dll и .exe. Portable PDB — открытый кросс-платформенный формат, появившийся вместе с .NET Core: он более компактный и читается отладчиками на Linux и macOS. Оба формата обрабатывает один и тот же компонент — Microsoft.DiaSymReader.Native.
PDB-файлы регулярно загружаются автоматически: Visual Studio подтягивает их с Symbol Server Microsoft при отладке, JetBrains Rider делает то же самое, а CI/CD-системы (GitHub Actions, Azure Pipelines, TeamCity) используют их при анализе покрытия кода и краш-репортах. Именно этот сценарий делает уязвимости в парсере PDB особенно опасными: файл может прийти из внешнего источника и обработаться без явного действия разработчика.
В сентябрьском патче от 8 сентября 2026 года Microsoft закрыла три уязвимости одним обновлением пакета Microsoft.DiaSymReader.Native до версии 18.9.0-beta1.26405.2:
| CVE | CVSS | Тип | Затронутый формат |
|---|---|---|---|
| CVE-2026-69439 | 8.8 High | Heap-based Buffer Overflow (CWE-122) | Portable PDB |
| CVE-2026-71328 | 8.8 High | Out-of-Bounds Write | MSFZ PDB (Windows) |
| CVE-2026-69522 | 8.8 High | Out-of-Bounds Write | PDB (общий) |
Все три уязвимости затрагивают исключительно Windows (платформонезависимый .NET на Linux и macOS не подвержен). Компонент DiaSymReader — нативная Windows-библиотека, унаследованная из экосистемы COM/ActiveX; именно она разбирает бинарные структуры PDB, когда отладчик или инструмент анализа запрашивает символы.
CVE-2026-69439 — наиболее изученная из трёх. Вектор атаки: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H. Это означает — сетевая атака (AV:N), низкая сложность (AC:L), без предварительной аутентификации (PR:N), но требует взаимодействия пользователя (UI:R), например открытия решения в IDE или запуска отладчика.
Механизм: Portable PDB содержит переменно-длинные потоки данных. При парсинге поля длины DiaSymReader выполнял сужающее преобразование типа (например, из 32-бит в 16-бит), которое при определённых значениях «заворачивается» (integer wraparound) и приводит к записи за границей выделенного буфера в куче. Поскольку и длина, и содержимое записи контролируются атакующим через содержимое PDB-файла, это классическая heap corruption, а не просто падение программы.
CVE-2026-71328 действует аналогично, но на другой ветке кода — при разборе MSFZ PDB (Windows-native формат). Обе уязвимости сообщены независимо и закрыты одним и тем же исправлением в DiaSymReader.
Уязвимости классифицированы как Elevation of Privilege / Remote Code Execution, но для эксплуатации нужно заставить жертву открыть или загрузить вредоносный PDB-файл. На практике самый реалистичный вектор — подмена PDB на скомпрометированном Symbol Server или в артефактах сборки в CI/CD.
Уязвимы все, кто использует Microsoft.DiaSymReader.Native версий от 17.12.0-beta1.24603.5 до 18.9.0-beta1.26405.1 включительно на платформе Windows. Это включает:
Microsoft.DiaSymReader.Native в своих зависимостях..NET на Linux и macOS данными CVE не затронут: компонент DiaSymReader.Native является Windows-only бинарным файлом и не входит в кросс-платформенные сборки.
Помимо трёх PDB-уязвимостей, сентябрьский патч закрыл ещё несколько проблем:
Способ обновления зависит от того, как развёртывается .NET в вашем окружении:
mcr.microsoft.com/dotnet/runtime:8.0 и аналогичных) — они уже содержат исправленный рантайм.Microsoft.DiaSymReader.Native, обновите версию до 18.9.0-beta1.26405.2 или выше в .csproj или Directory.Packages.props.Проверить текущую установленную версию рантайма можно командой:
dotnet --list-runtimes
Для Visual Studio отдельное обновление выходит через канал VS Updates — ищите «September 2026 Security Release» в разделе Help → Check for Updates.
О других уязвимостях в файловой экосистеме сентября 2026 читайте в нашем разборе Patch Tuesday сентябрь 2026: уязвимости Word, Excel и RAW-файлов. Если вас интересует общая карта форматов, опасных при неаккуратном открытии, — смотрите карту опасных расширений на Loadfile.