В Microsoft SharePoint обнаружена критическая уязвимость удаленного выполнения кода (RCE), связанная с обработкой вредоносных XML-данных в веб-частях. Эта проблема позволяет злоумышленникам внедрять и выполнять произвольный код на уязвимых серверах SharePoint, что представляет серьезную угрозу для корпоративных систем.
Как работает уязвимость
Уязвимость возникает в процессе десериализации свойств веб-части, а именно в методе "Microsoft.SharePoint.WebPartPages.WebPart.AddParsedSubObject()". Когда SharePoint обрабатывает XML-содержимое внутри веб-части, система выполняет цепочку десериализации, которая в конечном итоге приводит к исполнению стороннего кода.
Атака начинается с того, что SharePoint загружает XML-данные, встроенные в веб-часть, и передает их на обработку через метод "LiteralControl". Далее XML разбирается и десериализуется с помощью "WebPart.ParseXml()", где используется "XmlSerializer" для восстановления объекта веб-части. Однако уязвимость кроется в методе "WebPart.GetAttachedProperties()", который десериализует поле "_serializedAttachedPropertiesShared" через "SPObjectStateFormatter".
На этом этапе SharePoint использует "BinaryFormatter" - известный своей ненадежностью механизм десериализации, который допускает исполнение произвольного кода при обработке специально сформированных данных. Злоумышленники могут внедрить вредоносную сериализованную нагрузку в атрибут "AttachedPropertiesShared" веб-части, обойдя встроенные механизмы защиты.
Технические детали эксплуатации
Эксплуатация уязвимости возможна через несколько точек входа, включая SOAP-сервис "/_vti_bin/webpartpages.asmx", который поддерживает метод "ConvertWebPartFormat". Атакующий может отправить специально подготовленный POST-запрос с XML-данными, содержащими сериализованный вредоносный объект.
Для успешной атаки злоумышленники используют класс "Microsoft.SharePoint.ApplicationPages.SPThemes", который, в свою очередь, задействует "DataSet" - уязвимый к десериализации компонент, позволяющий выполнить произвольный код. Нагрузка кодируется в base64 и внедряется в XML-структуру веб-части, после чего SharePoint, обрабатывая запрос, выполняет вредоносные инструкции.
Последствия и риски
Успешная эксплуатация уязвимости дает злоумышленнику полный контроль над сервером SharePoint: возможность чтения и модификации данных, изменения конфигурации системы, а также дальнейшего перемещения по корпоративной сети. Это особенно опасно для организаций, использующих SharePoint для хранения конфиденциальной информации, так как атакующие могут получить доступ к внутренним документам, учетным записям пользователей и другим критически важным данным.