Salesforce 'ForcedLeak': Indirect Prompt Injection via Agentforce Web-to-Lead Forms
Noma validated an indirect prompt-injection chain in Salesforce Agentforce: a stored Web-to-Lead description influenced a later answer, which placed CRM email data in an image URL on a reclaimed, allowlisted domain. Loading that image sent the data to the researchers' server. Noma assigned CVSS 9.4; Salesforce subsequently re-secured the domain and introduced Trusted URL enforcement.
Defenses must cover untrusted records, tool authority and the renderer's network requests.
Threat Analysis
- Stored input. An external Web-to-Lead description was later processed during an employee's normal request.
- Observed consequence. The public PoC placed CRM email data in an image URL query. The receiving-server log in the short demo shows a GET request, not an agent HTTP POST.
- Destination trust. The researchers reclaimed an expired domain that remained allowlisted.
- Evidence boundary. Wider data loss, record modification and lateral movement were discussed as possible impacts; the published image-channel validation does not prove all those effects occurred.
- Response. Salesforce reclaimed the domain and introduced Trusted URL enforcement. This addresses that destination path without establishing universal resistance to prompt injection.
Applicable AIDEFEND Defenses (6)
What Defenders Should Do Now
- Apply Salesforce's current Trusted URL recommendations and review externally supplied lead descriptions as untrusted input.
- Inventory tool requests and renderer image, preview and link requests. Confirm which surfaces you control and which require provider support.
- Authorize the exact task, data, recipient and action before sending CRM records; use independent approval for high-risk actions rather than treating a model confirmation as authority.
- Verify destination ownership and purpose; suspend uncertain destinations. An allowed domain does not make a transfer authorized.
- Test the published image payload and realistic variants against the actual deployed boundaries. Isolated parsing and detection reduce risk; separately verify sink enforcement and bypass paths.
2 additional considerations
Allowlisted destination ownership and lifecycle
Data-sensitive renderer and tool observability
Conclusion
AIDEFEND maps defense methods to input handling, action authorization and response rendering. Screening and isolated parsing reduce risk; independently enforced object and sink decisions can stop their covered paths. A static destination allowlist neither establishes data authorization nor guarantees continued domain ownership. Verify each boundary and its bypass paths instead of claiming that any single layer makes exfiltration impossible.
Last updated: