Эксперты Check Point проверили разные модели нечеткого тестирования старого компонента Office MSGraph и нашли сразу четыре опасных бага. Последний из них был исправлен 8 июня 2021 г.
Один компонент, четыре уязвимости
Эксперты компании Check Point выявили в офисном
пакете Microsoft четыре уязвимости, которые позволяют начинять документы Office вредоносным
содержимым.
Уязвимости получили
следующие индексы: CVE-2021-31179 — уязвимость, позволяющая производить запуск удаленного кода, CVE-2021-31174 — вывод
информации из Excel, CVE-2021-31178
— уязвимость вывода информации в китайской версии MSOffice, CVE-2021-31939 — уязвимость использования памяти
после ее освобождения (use-after-free).
Все эти уязвимости
выявлены в компонент MSGraph COM для отображения различных графиков и диаграмм.
Компонент довольно старый — в Microsoft Office он присутствует с версии 2003. MSGraph и поныне применяется в нескольких версиях Office, включая Excel под Windows, OfficeOnlineServer и Excel под OSX.
«В плане поверхности
атаки MSGraph
похож на Microsoft Equation Editor 3.0.
Однако в отличие от Equation Editor, MSGraph обновляется с каждым патчем к Office и получает новейшие
защитные функции (такие как ASLR и DEP), что значительно затрудняет их эксплуатацию», —
говорится в исследовании Check Point.
Информация об уязвимостях
была передана в Microsoft 28 февраля 2021 г. После этого 11 мая были исправлены
три из перечисленных уязвимостей, а 8 июня — залатана последняя (CVE-31939).
Нечеткое тестирование, явные результаты
В документе также
указывается, что целью исследования MSGraph была отработка методики нечеткого тестирования (fuzzing), при этом компоненты
Office по
архитектурным причинам представляют собой крайне сложную мишень для таких
опытов.
«MSGraph — бессимвольная программа, использующая в
некоторых частях кода модель Windows COM, — поясняют исследователи. — Это уже делает
нечеткое тестирование ее нетривиальной задачей. Сверх того, MSGraph в частности и Office в целом использует и
запускает огромное количество других компонентов и внешних DLL, что делает процесс
обратной инженерии еще сложнее».
«Если уязвим компонент,
используемый сразу в нескольких разработках Microsoft, то, как правило, уязвимы и конечные продукты,
если в них нет специальных механизмов, нейтрализующих проблему, — говорит Алексей Водясов, технический директор
компании SEC Consult Services. —
Компонент MSGraph — очень старый, и как справедливо пишут исследователи, редко привлекавший
внимание экспертов по безопасности. Закономерным образом улов оказался велик».