Критическая уязвимость удаленного выполнения кода (Remote Code Execution, RCE) на стороне клиента в программе Google Web Designer подвергла пользователей Windows риску полного компрометирования систем. Об этом свидетельствует детальное исследование специалиста по кибербезопасности Балинта Мадьяра.
Детали уязвимостей
Проблема, затрагивающая версии приложения ранее 16.4.0.0711 (выпущенной 29 июля 2025 года), позволяла злоумышленникам внедрять вредоносный CSS в файл конфигурации и использовать внутренний API для выполнения произвольных команд через аргументы командной строки Google Chrome. В основе уязвимости лежит недостаточная очистка пользовательских определений градиентов в файле конфигурации gwd_workspace.json, который поставляется вместе с рекламными документами.
В то время как сплошные цвета строго парсятся в их RGBA-компоненты, записи градиентов проверяются только на наличие связанных с градиентами ключевых слов перед тем, как быть дословно внедренными в пользовательский интерфейс приложения. Создав специальное вредоносное CSS-правило - а именно функцию background:url(), указывающую на внутренний REST API Google Web Designer (ninja-shell), - злоумышленник может спровоцировать непредусмотренные вызовы API, когда пользователь открывает палитру цветов "Swatches".
Как только внедренный CSS вызывает конечную точку /api/browser, которую Google Web Designer использует для запуска внешних процессов браузера, атакующий может выйти из параметра URL с помощью двойной кавычки, чтобы передать дополнительные аргументы Chrome. Злоупотребляя опцией Chrome --browser-subprocess-path, появляется возможность указать браузеру на удаленный исполняемый файл, размещенный на ресурсе WebDAV, с использованием пути UNC (Universal Naming Convention), например, \\attacker.com\share\payload.exe. Chrome автоматически загрузит и выполнит полезную нагрузку, предоставив злоумышленнику полный контроль над системой жертвы.
Атака развивается в четыре этапа: распространение вредоносного пакета документа, внедрение CSS, вызов API и удаленное выполнение кода. Жертвы загружают специально созданный рекламный документ и открывают его в Google Web Designer. Файл gwd_workspace.json определяет пользовательский образец градиента, CSS-полезная нагрузка которого ссылается на конечную точку /api/browser с внедренными аргументами Chrome. Когда пользователь нажимает на элемент управления "Swatches", интерфейс приложения отображает вредоносный CSS, отправляя HTTP-запрос к внутреннему API. Google Web Designer запускает Chrome с внедренными аргументами, что приводит к загрузке и выполнению полезной нагрузки злоумышленника.
Открытие Балинта Мадьяра последовало за двумя ранее обнаруженными уязвимостями RCE на стороне клиента (CVE-2025-1079 и CVE-2025-4613) в том же приложении, хотя те требовали использования техник символьных ссылок и обхода путей. Данная цепочка, за которую Google выплатил вознаграждение в размере 3500 долларов в рамках программы поощрения за сообщения об уязвимостях, была высоко оценена за свою элегантность и редкий случай эскалации от внедрения CSS до полного выполнения кода - вектор атаки, мало документированный в исследованиях по безопасности.
Google Web Designer - это бесплатный кроссплатформенный инструмент для создания динамической рекламы на HTML5, который использует Chromium Embedded Framework для своего интерфейса. В то время как версии для macOS и Linux остаются в безопасности благодаря более строгой обработке подпроцессов, пользователи Windows оказались основной мишенью данной эксплойтации. Пользователям настоятельно рекомендуется обновить приложение до версии 16.4.0.0711 или новее для снижения риска.
Эта уязвимость подчеркивает сложности защиты гибридных приложений, сочетающих нативные API и веб-технологии. По мере роста сложности растет и поверхность для новых цепочек атак. Специалистам по безопасности и разработчикам следует учесть: тщательная очистка и аккуратное обращение с пользовательскими данными крайне важны, особенно при объединении веб-интерфейсов с системными API.
Ссылки
- https://balintmagyar.com/articles/google-web-designer-css-injection-client-rce
- https://www.cve.org/CVERecord?id=CVE-2025-1079
- https://www.cve.org/CVERecord?id=CVE-2025-4613