Microsoft оценила вероятность эксплуатации CVE-2026-45659 как "Exploitation Less Likely". Через 40 дней CISA маркировала active exploitation и дала федеральным агентствам три дня на патч. Между этими двумя событиями - открытое окно, в которое влезли все желающие.
За первую половину 2026 года Microsoft закрыла четыре RCE-уязвимости в on-premises SharePoint Server. Три из четырёх - десериализация (CWE-502). Это не случайность, это системная проблема десериализационной поверхности, до которой у вендора руки доходят реактивно.
Бизнес-логика атаки: зачем атакующему SharePoint RCE уязвимость
SharePoint в корпоративной сети - перекрёсток: Active Directory, SQL Server, файловые хранилища, workflow-интеграции, внутренние wiki. Для атакующего удалённое выполнение кода SharePoint означает:- Initial access через Exploit Public-Facing Application (T1190), если ферма торчит через reverse proxy или напрямую в интернет
- Доступ к корпоративным данным через SharePoint (T1213.002) - документы, переписка, workflow
- Lateral movement через service accounts, которые SharePoint использует для взаимодействия с AD и SQL Server
- Persistence через web shell (T1505.003) в служебных директориях SharePoint
Анатомия CVE-2026-45659: десериализация SharePoint как эксплойт-вектор
CWE-502 в .NET-стеке SharePoint
CVE-2026-45659 - десериализация небезопасных данных (CWE-502: Deserialization of Untrusted Data). По определению MITRE CWE, "продукт десериализует недоверенные данные без достаточной проверки того, что результат будет валидным". Последствия по CWE: Integrity - Modify Application Data; Availability - DoS: Resource Consumption (CPU); Other - Varies by Context.По текущей классификации OWASP Top 10 небезопасная десериализация входит в категорию A08 - Software and Data Integrity Failures. CWE-502 - дочерний тип CWE-913 (Improper Control of Dynamically-Managed Code Resources), что указывает на корень проблемы: неконтролируемое создание объектов на основе внешних данных.
В .NET-стеке SharePoint ситуация хуже, чем в среднем по больнице. SharePoint - масштабное ASP.NET-приложение с кучей endpoint'ов, принимающих сериализованные данные: ViewState, workflow-объекты, кеширование, remoting. Когда один из таких endpoint'ов десериализует объект без ограничений на допустимые типы, атакующий формирует payload с gadget chain - последовательностью легитимных .NET-классов, которые при десериализации выполняют произвольный код через callback'и и конструкторы. Как отмечает Indusface: "individually, these classes are harmless and commonly used, which makes them difficult to detect or block. However, when chained together within a malicious payload, they enable arbitrary code execution.""По отдельности эти классы безвредны и широко используются, что затрудняет их обнаружение или блокировку. Однако, будучи объединены в цепочку вредоносных программ, они позволяют выполнять произвольный код."
Ключевое из CVSS-вектора CVE-2026-45659 (
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H):- AV:N - атака по сети
- AC:L - низкая сложность
- PR:L - нужны минимальные привилегии (Site Member)
- UI:N - действие пользователя не требуется
- C:H/I:H/A:H - полный impact на конфиденциальность, целостность и доступность
active, automatable no, technical impact total. Решение: Act - патчить немедленно.В январе закрыта CVE-2026-20963, и разница критична:
| Параметр | CVE-2026-45659 | CVE-2026-20963 |
|---|---|---|
| CVSS | 8.8 (HIGH) | 9.8 (CRITICAL) |
| CWE | CWE-502 | CWE-502 |
| Аутентификация | PR:L (Site Member) | PR:N (без аутентификации) |
| Automatable (CISA) | Нет | Да |
| EPSS (30 дней) | 0.0322 (86.7 percentile) | 0.3111 (Top 5%) |
| CISA KEV | 01.07.2026 | 18.03.2026 |
CVE-2026-20963 - неаутентифицированная RCE с CVSS 9.8 и automatable=yes. Массовое сканирование - вопрос времени (точнее, оно уже идёт). EPSS этой CVE - в Top 5% по вероятности эксплуатации среди всех CVE в базе.
PR:L у CVE-2026-45659 на практике не спасает: учётные записи с Site Member-доступом к SharePoint - это сотрудники, подрядчики, сервисные аккаунты, забытые accounts на legacy-сайтах. В типичной корпоративной среде таких - сотни.
Четыре SharePoint RCE за полгода - паттерн, а не совпадение.
Fingerprinting SharePoint-фермы при пентесте
[Применимо: внешний и внутренний пентест, black/grey box]Прежде чем проверять применимость CVE-2026-45659 SharePoint RCE, нужно установить версию фермы. Уязвимы все build-версии ниже:
| Продукт | Фиксированный build | KB |
|---|---|---|
| SharePoint Enterprise Server 2016 | 16.0.5552.1002 | KB5002868 |
| SharePoint Server 2019 | 16.0.10417.20128 | KB5002870 |
| SharePoint Server Subscription Edition | 16.0.19725.20280 | KB5002863 |
SharePoint Online (Microsoft 365) не затронут - уязвимость только в on-premises.
Методы определения версии:
HTTP-заголовки. SharePoint отдаёт заголовок
MicrosoftSharePointTeamServices в HTTP-ответе. Запрос curl -sI https://sharepoint.target.local | grep -i microsoftsharepoint покажет build-номер фермы - заголовок присутствует в любом ответе, включая страницы аутентификации. Это первое, что стоит проверить - до сканирования портов, до fingerprint'а сервисов.API-вызов. При наличии Site Member-доступа:
curl -s -H "Accept: application/json" https://sharepoint.target.local/_api/web возвращает JSON с метаданными фермы.Nmap NSE. Скрипт
http-sharepoint-diag автоматизирует сбор build-номера. Для массового сканирования: nmap -p 80,443 --script http-sharepoint-diag <target_range>.Полученный build сравнивается с таблицей выше. Если ниже - вектор готов.
Эксплуатация CVE-2026-45659: цепочка от Site Member до RCE
Требования к окружению
Для воспроизведения в лабораторных условиях:- ОС: Windows Server 2019/2022 с SharePoint Server 2019 ниже build 16.0.10417.20128
- RAM: минимум 16 ГБ (SharePoint требует от 12 ГБ для одноузловой фермы)
- Backend: SQL Server 2017+
- Учётная запись: Site Member на любом site collection
- Инструменты: Burp Suite для перехвата трафика, ysoserial.net для генерации .NET gadget chain payload'ов, dnSpy или ILSpy для реверса .NET-сборок SharePoint
Цепочка десериализации SharePoint
Публичных PoC-эксплойтов с полной рабочей цепочкой на момент написания нет. Penligent подтверждает: "There is not enough public evidence to responsibly claim a specific endpoint, payload format, or exploit chain.""В открытом доступе недостаточно доказательств, чтобы с уверенностью заявить о конкретной конечной точке, формате полезной нагрузки или цепочке эксплойтов."Концептуальная цепочка атаки:
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Kill chain position: Initial Access (T1190) -> Execution (через десериализацию) -> Persistence (T1505.003) -> Privilege Escalation (T1068).
Когда техника НЕ работает
- SharePoint Online / Microsoft 365 - уязвимость отсутствует
- Build равен или выше фиксированного - десериализационный путь закрыт патчем
- AMSI включён в Full Mode - сканирует .NET Assembly.Load() и блокирует ряд gadget chain'ов
- WAF с deep inspection сериализованных объектов - редкость в enterprise, но способен блокировать payload
- Ротация ASP.NET machine keys + перезапуск IIS (
iisreset.exe) после патча - инвалидирует ViewState-based payload'ы (рекомендация CERT-EU)
Post-exploitation: lateral movement после десериализации SharePoint
[Применимо: внутренний пентест, grey box; после успешного RCE]Получив выполнение кода на SharePoint-сервере, атакующий работает в контексте w3wp.exe. Дальше - стандартная пост-эксплуатация, но с нюансами SharePoint-среды.
Credential harvesting. Service accounts SharePoint хранят токены для SQL Server, AD, внешних API. Через прямой доступ к
web.config и конфигурационным файлам извлекаются connection strings. PowerShell (T1059.001) - типичный инструмент на этом этапе, но именно он генерирует максимум алертов (подробнее - в разделе про детекцию).Pivoting в Active Directory. Если SharePoint-сервис работает от доменного аккаунта (а это стандартная конфигурация), его credentials пригодны для Kerberoasting или Pass-the-Hash. На реальных пентестах я неоднократно видел, что service account SharePoint обладает правами, которые значительно превышают необходимые - вплоть до Enterprise Admin в отдельных legacy-средах, где права не пересматривались годами. Звучит дико, но встречается чаще, чем хотелось бы.
Ingress Tool Transfer (T1105). Загрузка C2-агента (Cobalt Strike beacon, Sliver implant) или web shell для устойчивого доступа. ASPX web shell в директории
/_layouts/15/ визуально не выделяется на фоне легитимных файлов SharePoint - там и так десятки .aspx-страниц, ещё одна не бросается в глаза.Обнаружение атак SharePoint: артефакты и SIEM-правила
Артефакты в логах IIS и Windows Event Log
Ключевой индикатор десериализации SharePoint - аномальные дочерние процессы w3wp.exe. Worker process не должен порождатьcmd.exe (T1059.003), powershell.exe (T1059.001), certutil.exe (T1105, T1140, T1027.013), csc.exe (T1127). Любой такой процесс - критический алерт. Без исключений.Windows Security Event ID 4688 (Process Creation) с включённым аудитом command line фиксирует эту активность:
Код:
Get-WinEvent -FilterHashtable @{
LogName = 'Security'; Id = 4688
} | Where-Object {
$_.Properties[13].Value -match 'w3wp\.exe' -and
$_.Properties[5].Value -match '(cmd|powershell|certutil)'
} | Select-Object TimeCreated, @{N='Child';E={$_.Properties[5].Value}}
/_layouts/15/ с нестандартным Content-Type или объёмом тела в IIS-логах; ошибки TypeLoadException или SerializationException в SharePoint ULS-логах (верный признак неудачной попытки десериализации); новые .aspx файлы в директориях SharePoint - вероятные web shell'ы.Sigma-правила обнаружения SharePoint десериализации
YAML:
title: SharePoint w3wp.exe Suspicious Child Process
logsource:
product: windows
service: security
detection:
selection:
EventID: 4688
ParentProcessName|endswith: '\w3wp.exe'
NewProcessName|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\certutil.exe'
- '\csc.exe'
condition: selection
level: high
w3wp.exe -> cmd.exe/powershell.exe из коробки с Prevention Policy на moderate и выше. SentinelOne аналогично реагирует на дочерние процессы IIS worker. Elastic 8.x+ с endpoint-агентом и kernel ETW-TI перехватывает PowerShell (T1059.001) на уровне telemetry provider - стандартный PowerShell-загрузчик неэффективен, атакующему придётся использовать inline .NET Assembly.Load() или unmanaged code.Для red team / OPSEC: если на SharePoint-сервере стоит endpoint-агент, подход "десериализация -> cmd.exe -> whoami" - мгновенный алерт. Минимизация detection footprint: выполнение in-process через gadget chain без порождения дочерних процессов. Obfuscated Files or Information (T1027) и Deobfuscate/Decode (T1140) - тактики сокрытия payload'а от статического анализа. На практике - если видишь CrowdStrike на таргете, классическую цепочку можно даже не пробовать.
Ограничения и контекст применения CVE-2026-45659
| Фактор | Влияние на эксплуатацию |
|---|---|
| SharePoint Online | Не затронут - только on-premises |
| Patched builds | Десериализационный путь закрыт |
| AMSI Full Mode | Блокирует Assembly.Load() в большинстве gadget chain |
| CrowdStrike Falcon / SentinelOne | Детект child process spawn от w3wp.exe |
| Elastic 8.x+ (ETW-TI) | Kernel-level перехват PowerShell-выполнения |
| WAF (deep inspection) | Блокировка .NET-объектов в теле запроса |
| Ротация machine keys | Инвалидация ViewState-payload'ов |
| Network segmentation | Ограничение lateral movement |
На внешнем пентесте CVE-2026-45659 актуальна при условии доступности SharePoint через reverse proxy и наличия валидных credentials. На внутреннем - типичный вектор при grey box с выданными low-privilege учётными данными домена: Site Member на SharePoint часто наследуется от доменного членства. Получил доменную учётку уровня "сотрудник" - с высокой вероятностью уже Site Member на корпоративном SharePoint.
CERT-EU помимо установки патча CVE-2026-45659 рекомендует: развернуть EDR на SharePoint-серверах, включить AMSI в Full Mode, ротировать ASP.NET machine keys и провести compromise assessment на internet-facing активах. Рекомендации основаны на опыте эксплуатационной кампании против SharePoint 2025 года (advisory CERT-EU 2025-027).
Десериализационная поверхность атаки SharePoint Server системно недооценена. Microsoft оценила CVE-2026-45659 как "Exploitation Less Likely" - через 40 дней CISA маркировала active exploitation. С CVE-2026-20963 та же история: вендор говорит Important, реальность показывает Critical с EPSS в Top 5%. Для пентестера вывод прямой: обнаружил on-premises SharePoint в скоупе - build-номер через HTTP-заголовок
MicrosoftSharePointTeamServices первым запросом, до fingerprint'а портов. Build ниже фиксированного - вектор готов, а Site Member в корпоративном SharePoint - это значительная часть сотрудников. Microsoft движется к cloud-first, on-premises фермы остаются на поддержке без активного развития security-модели, и gap между оценкой вендора и находками исследователей растёт. Формула на бумаге понятна, но десериализационные цепочки .NET по-настоящему чувствуются только когда сам прогоняешь payload через gadget chain на живом стенде - web-категория на HackerLab.pro (https://hackerlab.pro) покрывает схожие сценарии.
Последнее редактирование модератором: