Google Project Zero разобрал эксплуатацию недавно исправленной Microsoft уязвимости повышения привилегий CVE-2026-66804 в Windows. Причина — висячая регистрация COM, запись о компоненте без файла сервера, для объекта CrossDevice.

Регистрация была доступна всем пользователям, но серверная DLL отсутствовала в каталоге C:\ProgramData, где любой пользователь может создавать каталоги. Поэтому там можно создать произвольную DLL и загрузить её при создании COM-объекта, что может дать повышение привилегий.

Авторы нашли Shell Create Object Handler — службу COM, которая работает от имени SYSTEM и разрешает пользовательскую маршализацию COM, механизм передачи COM-объектов между процессами. Обычный пользователь может запустить её с помощью запланированной задачи CreateObjectTask.

Проверка утверждений:

  • Google Project Zero описал эксплуатацию недавно исправленной Microsoft уязвимости повышения привилегий CVE-2026-66804 в Windows. (подтверждено самой публикацией: доказательство; «This short blog post is about abusing a privilege escalation bug that Microsoft recently fixed in Windows, CVE-2026-66804»)
  • Причина CVE-2026-66804 — висячая регистрация COM-объекта CrossDevice. (подтверждено самой публикацией: доказательство; «The root cause of the bug was a dangling COM object registration for the CrossDevice COM object»)
  • Регистрация была доступна всем пользователям, но файл серверной DLL отсутствовал в каталоге C:\ProgramData, где любой пользователь может создавать каталоги. (подтверждено самой публикацией: доказательство; «This object was registered in the system wide classes key, meaning it was accessible to all users on the system, including system services. However the server executable was missing. Specifically it was registered to use the DLL %PROGRAMDATA%\CrossDevice\CrossDevice.Streaming.Source.dll . Not only does this path not exist, it’s also within the C:\ProgramData directory. This is a common location for all users on the system and therefore permits anyone to create directories.»)
  • В этом месте можно создать произвольную DLL и при создании COM-объекта загрузить её, что может привести к повышению привилегий. (подтверждено самой публикацией: доказательство; «Therefore you can create an arbitrary DLL file at that location and the COM object can be instantiated potentially leading to privilege escalation.»)
  • Авторы нашли службу COM, работающую от имени SYSTEM и разрешающую пользовательскую маршализацию: Shell Create Object Handler. (подтверждено самой публикацией: доказательство; «It turned out to be a COM service I’ve researched and exploited before, the Shell Create Object Handler object. This is an interesting COM object, in that while it runs in a SYSTEM service»)
  • Обычный пользователь может запустить для неё запланированную задачу CreateObjectTask. (подтверждено самой публикацией: доказательство; «Fortunately this task can be started by normal users»)

Первоисточники:

оценка 56,4 из 100 · тип: инцидент