Salesforce Agentforce Is Inheriting Your Permission Debt: Auditing Agent Access Before It Amplifies a Breach
Why turning on Agentforce surfaces years-old sharing and permission gaps, and how to audit them before an agent operationalizes what a human user never got around to browsing

Proactive Security for the AI Era
NodeZero continuously and autonomously pentests infrastructure, identity, cloud, and now web applications, chaining weaknesses across every domain the way real attackers do. Every finding ships with replayable proof showing exploitable business impact, not theoretical risk.
Most Salesforce orgs that have been in production for more than a few years are carrying permission debt: org-wide defaults set to Public Read/Write during an early rollout and never revisited, a permission set granted broadly to unblock one project years ago and never scoped back down, a sharing rule that made sense for a team structure that no longer exists. None of this is usually treated as urgent, because a human user browsing the org does not actually exercise all of that access. People work within the handful of list views, reports, and record types relevant to their job, and the fact that their profile technically permits broader access rarely translates into broader actual use.
Agentforce changes that calculus without changing a single permission. An agent built on an existing user's profile, or on a dedicated agent user with its own permission set assignments, does not browse. It queries programmatically, following whatever data access the org's sharing model, profile, and permission sets grant it, across every object and every connected integration in scope for its task. Access that sat dormant under human use because nobody happened to click into it becomes access that is actively read, summarized, and acted on the moment an agent is pointed at that same profile.
This is not a hypothetical concern. In 2025, Noma Security disclosed ForcedLeak, a critical vulnerability chain (rated CVSS 9.4) in which an indirect prompt injection planted in a Web-to-Lead form description field, combined with agent overreach and a misconfigured Content Security Policy pointing at an expired, re-purchasable allowlisted domain, let an attacker exfiltrate CRM data including customer PII, sales pipeline detail, and internal communications. Salesforce patched the specific CSP and trusted-URL gap in September 2025. But the underlying lesson generalizes well beyond that one bug: an agent's blast radius is set by what it can already reach, and what it can already reach is whatever your sharing settings and permission sets have quietly allowed all along. This guide covers how to audit that inherited access before enabling or expanding Agentforce, not after.
Why This Happens: How Permission Debt Becomes Active Exposure
Three separate mechanisms compound into the same underlying problem.
Org-wide defaults and sharing rules drift wider over time, not narrower. Object-level sharing settings in Salesforce are commonly set permissively during initial rollout to avoid blocking early adoption, with the intention of tightening them later once usage patterns are understood. That tightening pass frequently never happens, because nothing forces it: a Public Read/Write default on a sensitive object does not generate an incident on its own, since human users are not systematically exploiting the full breadth of what they could technically see.
Permission sets accumulate through project-driven grants that outlive their project. A permission set assigned broadly to unblock a specific initiative, a data migration, an integration rollout, a temporary cross-team collaboration, routinely stays assigned long after the initiative ends, because removing access requires someone to notice it is no longer needed and take deliberate action, while leaving it in place requires nothing.
Human exploration habits mask the actual scope of both. A user with access to an entire object's records through a permissive sharing rule does not typically open every record; they work the subset relevant to their role. That self-limiting behavior is incidental, not a control, but it has functioned as one for years in many orgs, because nobody was systematically walking the full breadth of what a profile permitted.
Agentforce removes that incidental limitation. Reco's own security guidance on Agentforce notes that, unlike a standard connected app with fixed OAuth scopes, an Agentforce agent can dynamically invoke flows, APIs, and tools within its authorization boundary, and inherits row-level and field-level security from whatever profile, permission sets, and sharing rules apply to the user context it runs under. An agent's task-driven queries are comprehensive by design; it retrieves what is relevant to the task across everything it is permitted to see, not a habitually-limited subset. Varonis frames the resulting shift directly: with excessive access in place, the question is not whether sensitive data gets surfaced, but how quickly, since an AI agent does not let unused access sit idle the way a human user does.
The ForcedLeak disclosure illustrates how this compounds with a technical flaw rather than replaces the need to audit permissions in the first place. The vulnerability chain combined an indirect prompt injection (malicious instructions hidden in a public-facing Web-to-Lead form field), agent overreach (the agent acting on those injected instructions within its permitted scope), and a Content Security Policy gap that let exfiltrated data reach an attacker-controlled domain. The permission scope the agent operated within was what determined how much data that chain could reach once triggered; a narrower, well-audited scope limits the blast radius of a prompt injection flaw even when the flaw itself is patched.
Diagnostics: Mapping What an Agent Actually Inherits
Before enabling Agentforce more broadly, or as an urgent retroactive check if it is already enabled, work through the following to map the actual access surface an agent operates within.
Subscribe to unlock Remediation & Mitigation steps
Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.
Briefings like this, every morning before 9am.
Threat intel, active CVEs, and campaign alerts, distilled for practitioners. 50,000+ subscribers. No noise.
Fixes: Tightening Access Before an Agent Exercises It
Apply least privilege and, per Varonis's framing, least agency: limiting not just what data an agent can see, but which actions it can take autonomously versus which require human approval.
Subscribe to unlock Remediation & Mitigation steps
Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.
Validation: Confirming the Exposure Is Actually Closed
Tightening a setting in Setup is not the same as confirming an agent's effective access changed. Validate against the agent's actual behavior, not just its configuration.
Subscribe to unlock Remediation & Mitigation steps
Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.
Failure Cases: When the Standard Remediation Doesn't Fully Close the Gap
If tightening org-wide defaults to Private breaks legitimate access for human users who relied on the broader default, this usually means the sharing rules rebuilt to replace it were not comprehensive; audit which roles, groups, or existing permission sets need an explicit sharing rule added rather than reverting the org-wide default back to its prior permissive setting.
If an agent still surfaces data from an object you scoped down, check whether the agent's user context holds a separate permission set or profile-level "View All" or "Modify All" object permission that overrides row-level sharing entirely; object-level sharing rules do not constrain a profile or permission set that separately grants View All Data or Modify All Data on that object.
If field-level security changes do not appear to take effect for the agent, confirm the agent is not accessing the field indirectly through a formula field, a report, or a related list that surfaces the underlying value even when the source field itself is restricted; field-level security on Salesforce does not automatically propagate to every derived or aggregated view of that field's data.
If adversarial prompt testing still surfaces sensitive data despite a tightened permission scope, the gap is likely in the agent's own instructions or guardrail configuration rather than in Salesforce's native access controls; review the agent's system prompt and any tool-invocation guardrails separately from the permission audit, since the two are complementary controls and a fix to one does not substitute for a gap in the other.
Escalation Criteria: When to Involve Salesforce Support or a Broader Security Review
Handle internally when the gap traces to a specific, identifiable org-wide default, permission set, or field-level security setting that your team has the access and change-management process to correct directly.
Escalate to Salesforce support, or to a dedicated security review involving your CISO or security team beyond the Salesforce admin function, when: an agent's data access does not match what its documented permission set and sharing configuration should allow, suggesting a platform-level behavior rather than a misconfiguration; you discover evidence an agent already exfiltrated or exposed data before remediation, which shifts this from a configuration fix to an incident response matter; a connected app's OAuth scope cannot be reduced through standard Setup configuration and appears to require a platform-level change; or your organization's current Salesforce Security Health Check score falls well outside the audit-ready range across multiple objects and a single admin-level remediation pass is not sufficient to close it without a broader governance process.
Before escalating, gather: the specific agent's user context and full list of assigned permission sets and profile, the org-wide default and sharing rule configuration for every affected object, the current Security Health Check score and the specific findings driving it, connected app OAuth scope details for any integration involved, and, if applicable, agent query or activity logs covering the period in question. For the adjacent pieces of this same audit, our guides on Salesforce security hardening, auditing OAuth app grants across Microsoft 365, Entra ID, and Google Workspace, and our coverage of the Amtrak ShinyHunters Salesforce breach affecting 9 million records cover the connected-app and third-party-integration exposure this same permission debt frequently extends into.
The bottom line
Enabling Agentforce does not create new Salesforce permissions; it activates whatever permission debt your org has already accumulated in org-wide defaults, permission sets, sharing rules, and connected app OAuth scopes. A human user's self-limited browsing habits masked how broad that access actually was for years. An agent has no such habit and will query, retrieve, and act on everything its inherited scope allows, at machine speed. Map exactly what each agent's user context can reach, tighten org-wide defaults and stale permission set grants to least privilege, separate autonomous agent actions from ones requiring human approval, and validate the fix against the agent's actual retrieval behavior and adversarial prompts, not just its Setup configuration, before expanding Agentforce further.
Frequently asked questions
Does enabling Salesforce Agentforce create new security risks on its own?
Agentforce does not grant an agent any access beyond what the org's existing sharing settings, profiles, and permission sets already allow for its user context. The risk is that an agent actively exercises all of that inherited access at machine speed, surfacing data that sat dormant for years under human use.
What is 'permission debt' in the context of a Salesforce org?
It is the accumulation of overly broad org-wide defaults, profile permissions, and permission set grants that built up over an org's lifetime without being tightened, because a human user's limited browsing habits never actually exercised the full breadth of what those settings technically allowed.
What was the ForcedLeak vulnerability and how does it relate to permission auditing?
ForcedLeak was a CVSS 9.4 vulnerability chain disclosed by Noma Security in 2025 combining an indirect prompt injection in a Web-to-Lead form with agent overreach and a misconfigured Content Security Policy, letting an attacker exfiltrate CRM data. The permission scope an agent operates within determines how much data such a chain can reach, which is why auditing that scope matters independent of any single patched bug.
What is the difference between 'least privilege' and 'least agency' for an AI agent?
Least privilege limits what data an agent can access. Least agency, a concept Varonis applies specifically to AI agents, additionally limits which actions an agent can take autonomously versus which require human approval, such as letting an agent update a shipping address on its own but requiring approval for a refund above a set threshold.
How do I check whether my Salesforce org has permission debt that Agentforce would inherit?
Start with Salesforce's native Security Health Check for a baseline score, then manually review org-wide defaults on sensitive objects, enumerate permission sets assigned to the agent's user context for ones tied to completed projects, and audit field-level security and connected app OAuth scopes the agent's integrations depend on.
Why can't I rely on object-level sharing rules alone to restrict what an Agentforce agent sees?
A profile or permission set granting View All Data or Modify All Data on an object overrides row-level sharing rules entirely, and field-level security does not always propagate to derived views like formula fields or reports, so both need to be checked independently of object-level sharing configuration.
Sources & references
- Varonis: Identity Protection for Salesforce and Agentforce
- Salesforce Ben: Salesforce's Latest Agentforce Upgrade Tackles Security Issues Head-On
- Reco: Agentforce Security
- The Hacker News: Salesforce Patches Critical ForcedLeak Bug Exposing CRM Data via AI Prompt Injection
- Noma Security: ForcedLeak, AI Agent Risks Exposed in Salesforce Agentforce
Free resources
Critical CVE Reference Card 2025–2026
25 actively exploited vulnerabilities with CVSS scores, exploit status, and patch availability. Print it, pin it, share it with your SOC team.
Ransomware Incident Response Playbook
Step-by-step 24-hour IR checklist covering detection, containment, eradication, and recovery. Built for SOC teams, IR leads, and CISOs.
Get threat intel before your inbox does.
50,000+ security professionals read Decryption Digest for early warnings on zero-days, ransomware, and nation-state campaigns. Free, daily, no spam.
Unsubscribe anytime. We never sell your data.

Founder & Cybersecurity Evangelist, Decryption Digest
Cybersecurity professional with expertise in threat intelligence, vulnerability research, and enterprise security. Covers zero-days, ransomware, and nation-state operations for 50,000+ security professionals every morning.
