2025 Salesforce Agentforce "ForcedLeak" — prompt injection through Web-to-Lead exfiltrated CRM data
Data compromised
Salesforce CRM records reachable in the agent’s context, including lead and contact data, transmitted out through attacker-specified image requests. Noma Labs scored the chain CVSS 9.4; Salesforce enforced Trusted URL allowlists for Agentforce and Einstein on September 8, 2025, which blocks the path
Technical writeup
Vendor-mitigated AI agent vulnerability — Noma Security’s research team disclosed ForcedLeak in September 2025, a chained indirect prompt-injection attack against Salesforce Agentforce rated CVSS 9.4. An unauthenticated attacker submitted a Web-to-Lead form with malicious instructions concealed in the free-text description field, where they sat as an apparently normal inquiry. When an internal employee later asked the AI agent to summarise or evaluate that lead through ordinary business workflow, the agent executed both the employee’s request and the attacker’s hidden commands, retrieved sensitive CRM data, and shipped it to attacker infrastructure inside innocuous-looking image requests. Researchers also found an expired domain still present on Salesforce’s trusted-URL allowlist, which made the outbound channel look legitimate. Salesforce began enforcing Trusted URL allowlists for Agentforce and Einstein Generative AI agents on September 8, 2025 and says customers are no longer affected by this injection path. No customer data loss has been attributed to in-the-wild exploitation, so recordsAffected stays 0. The incident is the canonical example of the time-delayed trust-boundary failure that hits any agent reading untrusted third-party input.
Root cause
Web-to-Lead description fields accepted hidden instructions that Agentforce and Einstein agents executed when an employee later queried the lead; an expired but still allowlisted Salesforce-related domain gave the injected instructions a trusted exfiltration channel