CVE-2025-53967 у figma-developer-mcp: RCE через командну інʼєкцію у fallback до curl

CyberSecureFox 🦊

У популярному сервері figma-developer-mcp для Model Context Protocol виправлено критичну уразливість, що відкривала шлях до віддаленого виконання коду (RCE). Дефект CVE-2025-53967 отримав оцінку 7.5 за CVSS і стосувався ланцюга взаємодії з Figma API. За даними Imperva, проблема проявлялася у механізмі резервного звернення до API та могла бути використана для командної інʼєкції — особливо небезпечної в умовах інтеграції MCP з AI-агентами, зокрема Cursor.

Командна інʼєкція у fallback-механізмі: як з’явився шлях до RCE

Дослідження вказує, що при збої стандартного HTTP-запиту у файлі src/utils/fetch-with-retry.ts спрацьовував fallback, який викликав curl через child_process.exec. Неперевірені параметри з боку користувача підставлялися безпосередньо у shell-команду, що відкривало можливість для інʼєкції метасимволів оболонки (|, >, && тощо) і, як наслідок, RCE з правами процесу. Клас проблеми відповідає CWE-78: Command Injection та входить до ключових категорій інʼєкцій згідно з OWASP Top 10.

Механіка експлуатації та відмінність exec від execFile

Сценарій експлуатації лаконічний: помилка звернення до Figma API активує резервний шлях, який формує shell-команду зі змінними, що контролюються користувачем. Відсутність екранування та валідації дозволяє атакам додавати власні команди. Використання child_process.exec є ризикованим, адже воно інтерпретує командний рядок оболонкою. Натомість child_process.execFile запускає конкретний бінарний файл із масивом аргументів без shell-парсингу, істотно зменшуючи площу атаки для командної інʼєкції.

Вектори атаки: локальна мережа й DNS rebinding проти MCP

Imperva оцінює, що зловмисник у тій самій мережі з жертвою (публічний Wi‑Fi, сегмент корпоративної ЛОМ) може надіслати спеціально сформовані запити до вразливого MCP та добитися RCE. Додатково загрозу посилює DNS rebinding: користувача спонукають відвідати контрольований сайт, який переназначає доменні імена на локальні IP-адреси, обходячи політики браузера. У контексті Framelink для Figma MCP це підживлюється ризиком опосередкованої промпт-інʼєкції, коли AI-агента підштовхують до дій, що розширюють поверхню атаки або провокують витік даних.

Статус виправлення та технічні рекомендації з безпеки

Уразливість усунено у figma-developer-mcp версії 0.6.3, випущеній 29 вересня 2025 року. Рекомендовано негайно оновитися. Ключовий інженерний крок — відмова від child_process.exec із недовіреним вводом на користь execFile, який мінімізує вплив shell-інʼєкцій.

Додаткові заходи: сувора валідація та нормалізація входу; принцип найменших привілеїв для облікових записів MCP; сегментація мережі, локальний брандмауер та allowlist джерел; контроль і обмеження довірених доменів для протидії DNS rebinding; ревізія fallback-логіки; чітке журналювання помилок без небезпечних обхідних шляхів; моніторинг egress-трафіку. Ці практики узгоджуються з рекомендаціями OWASP та контролями сімейства NIST щодо керування виконанням коду та вхідною валідацією.

Вплив на екосистему AI-інструментів і уроки безпеки

Інцидент висвітлює системні ризики в інструментах для розробників, тісно інтегрованих з AI. Локальні сервіси часто сприймаються як «безпечні за замовчуванням», проте автоматизація через AI-агентів розширює довірене оточення та збільшує наслідки експлуатації слабких місць у ланцюжку інтеграції (MCP, плагіни, fallback-логіка). Недаремно підкреслюється: «безпека має йти в ногу з інноваціями».

Дійте зараз: оновіть figma-developer-mcp до 0.6.3+, відключіть ризиковані fallback-виклики, замініть exec на execFile, впровадьте валідацію даних та мережевий моніторинг. Проведіть аудит інтеграцій MCP з AI-агентами (наприклад, Cursor/Framelink) і посильте контроль доменів. Поєднання технічних і організаційних заходів знижує імовірність експлуатації CVE-2025-53967 і підвищує стійкість середовища розробки.

Залишити коментар

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються дані ваших коментарів.