RCE Zero-click no Figma Desktop
⚔️ Técnicas e Métodos de Ataque2026-05-18, 13:06
🎨 RCE Zero-click no Figma Desktop
A pesquisa de Benjamin Mamoud mostra como uma cadeia de falhas no Figma Desktop levou à execução remota de código.
O problema começou com prototype pollution: a UI bloqueava o uso de proto, mas a API do plugin ainda passava tal objeto para figma.combineAsVariants(). Isso permitiu a modificação de Object.prototype.
O pesquisador então explorou uma race condition em $INTERNAL_DO_NOT_USE$RERUN_PLUGIN$ para reiniciar o plugin em um contexto poluído e sobrescrever a flag jsx_debugging. Isso expôs uma API oculta — figma.jsx.deserialize.
O manuseio inseguro de expressões JSX transformou o prototype pollution em XSS através de um handler de erro modificado, errorHandler.
A etapa final ocorreu no lado do Electron. O método IPC writeFileToPath permitiu que dados arbitrários fossem escritos em um caminho escolhido com restrições insuficientes. Isso permitiu escrita arbitrária de arquivos e, finalmente, execução de código com privilégios do cliente Figma Desktop.
Etapas principais da cadeia:
• Prototype pollution — modificação de Object.prototype via figma.combineAsVariants();
• Race condition — reinício do plugin em um contexto poluído;
• XSS de desserialização JSX — transição de prototype pollution para execução JavaScript;
• Escrita arbitrária de arquivo → RCE — escrita de arquivo via IPC seguida de execução de código.
💬 Discutir
Fornecedor
Produto
Publicado
2026-05-18, 13:06