Onderzoekers van Zenity Labs hebben drie kwetsbaarheden in Salesforce Agentforce ontdekt waarmee aanvallers via gemanipuleerde leads CRM-data konden stelen en phishingberichten konden versturen. Daarvoor hoefde een aanvaller niet in te loggen en het slachtoffer hoefde nergens op te klikken. Salesforce heeft de problemen inmiddels verholpen.
Zenity noemt de kwetsbaarheden gezamenlijk SalesBleed. Het startpunt was Web-to-Lead, waarmee organisaties via openbare formulieren nieuwe leads in Salesforce opnemen. Een aanvaller kon daarin een verborgen instructie voor de AI-agent plaatsen.
Wanneer een medewerker Agentforce later vroeg om nieuwe leads te bekijken, las de agent ook de kwaadaardige instructie. Die kon Agentforce vervolgens opdracht geven andere CRM-gegevens op te vragen.
Rechten waren al aanwezig
Voor de aanval hoefden geen extra rechten te worden verkregen. De standaard General CRM-subagent waarmee Zenity testte, kon zowel leads als accountgegevens lezen. In de demonstratie werden onder meer bedrijfsnamen en dealbedragen uit de Accounts-tabel opgehaald.
Om die gegevens naar buiten te krijgen, omzeilden de onderzoekers het Trusted URLs-mechanisme van Salesforce. Datmoet voorkomen dat Agentforce niet-vertrouwde URL’s verwerkt. Verschillen in de manier waarop het filter en een browser URL’s interpreteerden, maakten het mogelijk een kwaadaardige URL toch te laten verwerken.
Data verdwijnt via DNS
De gestolen gegevens werden opgenomen in het subdomein van een URL van de aanvaller. Agentforce plaatste die URL in een HTML-tag voor een externe afbeelding. Zodra de interface de afbeelding probeerde op te halen, ontstond automatisch een DNS-query naar de server van de aanvaller.
De gebruiker hoefde nergens op te klikken. Ook hoefde het HTTP-verzoek zelf niet te slagen: de gegevens waren via DNS al naar buiten gestuurd. Bij Agentforce-agents in Slack kon hetzelfde gebeuren doordat Slack automatisch previews van links probeert te maken.
Agent verstuurde phishingberichten
Een derde kwetsbaarheid zat in een andere Slack-koppeling, meldt The Register. De Agentforce-actie Reply to a Slack Thread vereiste geen bevestiging voordat een bericht werd verstuurd en maakte niet zichtbaar welke gebruiker de actie had gestart. Daardoor konden phishinglinks onder de vertrouwde identiteit van de AI-agent worden verstuurd.
Ook een externe aanvaller kon dit via Web-to-Lead activeren. Zodra een medewerker de gemanipuleerde lead met Agentforce verwerkte, kon de agent zelfstandig een phishingbericht in Slack plaatsen.
Salesforce dicht lekken
Een gemanipuleerde lead bleef bovendien in Salesforce aanwezig en kon opnieuw worden geactiveerd wanneer een medewerker hem liet verwerken.
Zenity meldde de drie kwetsbaarheden op 1 juni bij Salesforce. Op 19 augustus bevestigden de onderzoekers dat de bypass van Trusted URLs was verholpen. Op 21 september concludeerden ze na tests dat alle drie de kwetsbaarheden waren opgelost.
Volgens Zenity is het achterliggende risico niet beperkt tot Salesforce. AI-agents die externe gegevens verwerken en tegelijkertijd via tools toegang hebben tot gevoelige bedrijfsinformatie, kunnen met vergelijkbare problemen te maken krijgen.