RCE в Figma: что нужно знать, чтобы защитить свои проекты и токены

Хакеры могут получить удалённый доступ к файлам, даже не заходя в аккаунт.


0pi9532e2ttv2xcwarjegun2z133w74k.jpg

Популярный инструмент для работы с макетами — Figma — оказался под угрозой из-за уязвимости в сервере Model Context Protocol (MCP), на котором основана интеграция с агентами на базе ИИ. Проблема была обнаружена летом 2025 года специалистами из Imperva и уже устранена, однако на момент выявления приводила к удалённому выполнению команд на стороне сервера. Уязвимость получила идентификатор CVE-2025-53967 и оценку 7,5 балла по шкале CVSS.

Суть проблемы заключалась в небезопасной обработке входящих данных. Компонент figma-developer-mcp некорректно формировал shell-команды, напрямую подставляя в них параметры, полученные от клиента, без должной фильтрации. Это позволяло внедрять метасимволы оболочки — такие как |, >, && — и подменять логику выполнения. Ошибка находилась в модуле src/utils/fetch-with-retry.ts, где при сбое стандартного запроса к API происходил переход на использование curl, вызываемого через child_process.exec, что и открывало окно для инъекций.

В нормальном сценарии клиент инициализирует сессию с MCP и обменивается запросами в формате JSON-RPC, вызывая различные вспомогательные инструменты — например, для получения данных из макета или загрузки изображений. Однако при использовании специально сформированных URL или заголовков атакующий мог внедрить произвольную команду, которая исполнялась с правами процесса сервера.

Такая атака могла быть реализована как внутри одной сети, например, через скомпрометированный корпоративный хост или общественный Wi-Fi, так и при помощи DNS Rebinding — достаточно было заставить пользователя открыть специально созданный вредоносный сайт.

Авторы отчёта подчеркнули, что сама уязвимость появилась из-за просчёта в архитектуре fallback-механизма, где exec применялся без проверки надёжности исходных данных. В результате инструмент, предназначенный для локального использования с ИИ-агентами вроде Cursor, становился точкой входа для полноценной удалённой атаки, способной затронуть проекты и личные данные разработчиков.

Проблема устранена в версии 0.6.3, выпущенной 29 сентября 2025 года. Разработчикам рекомендовано отказаться от использования child_process.exec при обработке внешнего ввода в пользу execFile, который исключает интерпретацию оболочкой.

Представители Imperva отметили, что по мере развития инструментов разработки с ИИ-составляющей необходимо более тщательно учитывать безопасность не только внешних API, но и локальных компонентов, поскольку даже такие модули могут стать уязвимым звеном в инфраструктуре.