{
  "title": "Cursor Enterprise procurement review matrix",
  "version": "1.2.0",
  "verifiedAt": "2026-09-12",
  "status": "Evidence-backed control questions; buyer-specific behavior remains contract/console test-required.",
  "columns": [
    "Control",
    "Cursor behavior",
    "Enterprise setting / check",
    "Risk",
    "Evidence",
    "Verified"
  ],
  "rows": [
    {
      "number": 1,
      "id": "identity-sso",
      "domain": "Identity",
      "control": "Enforce SSO",
      "cursorBehavior": "Require SAML or OIDC SSO and disable local login where the plan permits it.",
      "enterpriseSetting": "Verify supported IdP, enforcement scope, break-glass behavior, and domain claim in the admin console.",
      "risk": "Account takeover, orphaned access, or local-login bypass.",
      "evidence": [
        "https://cursor.com/enterprise"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "Identity admin",
      "verificationMethod": "Sign in with an assigned user and attempt a local-login bypass.",
      "passCriteria": "Assigned users authenticate through the approved IdP and local bypass is blocked."
    },
    {
      "number": 2,
      "id": "identity-scim",
      "domain": "Identity",
      "control": "Automate SCIM lifecycle",
      "cursorBehavior": "Provision and deprovision users and groups from the authoritative directory.",
      "enterpriseSetting": "Verify group mapping, seat removal, token revocation, and plan availability in the contract and console.",
      "risk": "Account takeover, orphaned access, or local-login bypass.",
      "evidence": [
        "https://cursor.com/enterprise",
        "https://cursor.com/pricing"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "Identity admin",
      "verificationMethod": "Create, update, suspend, and delete a test user through SCIM.",
      "passCriteria": "Every lifecycle event reaches Cursor within the documented service window."
    },
    {
      "number": 3,
      "id": "identity-break-glass",
      "domain": "Identity",
      "control": "Control break-glass access",
      "cursorBehavior": "Keep emergency admin access limited, monitored, and tested.",
      "enterpriseSetting": "Cursor's public pages do not define a universal break-glass workflow; verify available controls.",
      "risk": "Account takeover, orphaned access, or local-login bypass.",
      "evidence": [
        "https://cursor.com/security"
      ],
      "verified": "2026-09-12",
      "claimBasis": "kyenai-recommendation",
      "owner": "Security",
      "verificationMethod": "Review named emergency accounts and run a documented access test.",
      "passCriteria": "Emergency access has MFA, a named owner, an expiry or review date, and an audit trail."
    },
    {
      "number": 4,
      "id": "roles-admin",
      "domain": "Authorization",
      "control": "Minimize admin roles",
      "cursorBehavior": "Assign organization roles according to least privilege.",
      "enterpriseSetting": "Verify the exact role catalog and permissions in the active workspace.",
      "risk": "Privilege creep or an unreviewed user gaining administrative scope.",
      "evidence": [
        "https://cursor.com/enterprise"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "Cursor workspace owner",
      "verificationMethod": "Export or review every privileged member and business justification.",
      "passCriteria": "Each privileged account has a current owner and required responsibility."
    },
    {
      "number": 5,
      "id": "groups-separation",
      "domain": "Authorization",
      "control": "Separate pilot and production groups",
      "cursorBehavior": "Use identity groups and policies to isolate experimental users from production-facing teams.",
      "enterpriseSetting": "Verify whether every required policy can be scoped by group.",
      "risk": "Privilege creep or an unreviewed user gaining administrative scope.",
      "evidence": [
        "https://cursor.com/enterprise"
      ],
      "verified": "2026-09-12",
      "claimBasis": "kyenai-recommendation",
      "owner": "Platform engineering",
      "verificationMethod": "Compare membership, repository scope, models, MCPs, and agent rules across groups.",
      "passCriteria": "Pilot permissions cannot silently expand production access."
    },
    {
      "number": 6,
      "id": "privacy-enforcement",
      "domain": "Data governance",
      "control": "Enforce Privacy Mode org-wide",
      "cursorBehavior": "Enable and enforce Privacy Mode for all covered users.",
      "enterpriseSetting": "Verify plan, workspace, account, and client-specific behavior in the console and agreement.",
      "risk": "Unapproved retention, training, provider, subprocessor, or residency exposure.",
      "evidence": [
        "https://cursor.com/security",
        "https://cursor.com/data-use",
        "https://cursor.com/enterprise"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "Security",
      "verificationMethod": "Inspect the organization setting and test inheritance with a new member.",
      "passCriteria": "New and existing members inherit the enforced setting."
    },
    {
      "number": 7,
      "id": "training-exclusion",
      "domain": "Data governance",
      "control": "Verify training exclusion",
      "cursorBehavior": "Confirm that Privacy Mode excludes customer data from Cursor and model-provider training.",
      "enterpriseSetting": "Required: public marketing alone is not sufficient for the buyer's legal requirement.",
      "risk": "Unapproved retention, training, provider, subprocessor, or residency exposure.",
      "evidence": [
        "https://cursor.com/security",
        "https://cursor.com/data-use",
        "https://cursor.com/enterprise"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "Legal and security",
      "verificationMethod": "Map the public claim to the signed DPA or MSA and active workspace setting.",
      "passCriteria": "Contract language and console configuration support the same exclusion."
    },
    {
      "number": 8,
      "id": "provider-retention",
      "domain": "Data governance",
      "control": "Verify model-provider retention",
      "cursorBehavior": "Confirm the zero-data-retention arrangement for every enabled provider and model.",
      "enterpriseSetting": "Required: validate provider, model, region, abuse-monitoring exception, and change notification in contract or trust evidence.",
      "risk": "Unapproved retention, training, provider, subprocessor, or residency exposure.",
      "evidence": [
        "https://cursor.com/data-use",
        "https://cursor.com/enterprise"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "Privacy",
      "verificationMethod": "Request the provider matrix and compare it with the model allowlist.",
      "passCriteria": "Each enabled model has a documented retention treatment and exception path."
    },
    {
      "number": 9,
      "id": "cursor-retention",
      "domain": "Data governance",
      "control": "Define Cursor-side retention",
      "cursorBehavior": "Document retention for prompts, code context, indexes, logs, analytics, support records, and backups.",
      "enterpriseSetting": "Unknown until the active agreement, plan, features, and support process are reviewed.",
      "risk": "Unapproved retention, training, provider, subprocessor, or residency exposure.",
      "evidence": [
        "https://cursor.com/data-use",
        "https://cursor.com/security",
        "https://prod.cursor.com/docs/enterprise/privacy-and-data-governance"
      ],
      "verified": "2026-09-12",
      "claimBasis": "kyenai-recommendation",
      "owner": "Privacy",
      "verificationMethod": "Build a data-flow and retention table from contract, product settings, and trust evidence.",
      "passCriteria": "Every data class has a duration, deletion path, and accountable owner."
    },
    {
      "number": 10,
      "id": "subprocessors",
      "domain": "Data governance",
      "control": "Review subprocessors",
      "cursorBehavior": "Review Cursor and model-provider subprocessors before rollout and after changes.",
      "enterpriseSetting": "Verify contract notice period and objection or termination rights.",
      "risk": "Unapproved retention, training, provider, subprocessor, or residency exposure.",
      "evidence": [
        "https://cursor.com/security"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "Vendor risk",
      "verificationMethod": "Download the current list, record purpose and location, and test change-notice handling.",
      "passCriteria": "All material processors are approved or have a documented exception."
    },
    {
      "number": 11,
      "id": "data-residency",
      "domain": "Data governance",
      "control": "Confirm data residency",
      "cursorBehavior": "Map required regions to actual processing, storage, backup, and support locations.",
      "enterpriseSetting": "Public pages do not establish a universal customer-selectable residency option; verify contractually.",
      "risk": "Unapproved retention, training, provider, subprocessor, or residency exposure.",
      "evidence": [
        "https://cursor.com/security"
      ],
      "verified": "2026-09-12",
      "claimBasis": "kyenai-recommendation",
      "owner": "Legal and security",
      "verificationMethod": "Compare architecture and subprocessor evidence with policy requirements.",
      "passCriteria": "No unapproved region receives protected data."
    },
    {
      "number": 12,
      "id": "encryption",
      "domain": "Data protection",
      "control": "Verify encryption controls",
      "cursorBehavior": "Confirm TLS in transit and AES-256 at rest claims for covered services.",
      "enterpriseSetting": "Verify feature scope, exclusions, key ownership, and availability of CMEK in the purchased plan.",
      "risk": "Protected code or prompts exposed without the required encryption boundary.",
      "evidence": [
        "https://cursor.com/enterprise",
        "https://cursor.com/security"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "Security",
      "verificationMethod": "Review trust evidence and, where available, configuration for customer-managed keys.",
      "passCriteria": "Required data paths meet the organization's encryption standard."
    },
    {
      "number": 13,
      "id": "repo-policy",
      "domain": "Repository access",
      "control": "Apply repository allowlists or blocklists",
      "cursorBehavior": "Limit which repositories agents and users may access.",
      "enterpriseSetting": "Verify whether policy is allowlist, blocklist, or both and which agent surfaces it covers.",
      "risk": "Sensitive repositories or files become available to an agent unexpectedly.",
      "evidence": [
        "https://cursor.com/enterprise",
        "https://cursor.com/pricing"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "Platform engineering",
      "verificationMethod": "Attempt access to one approved and one denied repository.",
      "passCriteria": "Approved access works; denied access fails and is logged."
    },
    {
      "number": 14,
      "id": "sensitive-files",
      "domain": "Repository access",
      "control": "Protect sensitive files",
      "cursorBehavior": "Use repository exclusions and product policy to keep secrets and restricted paths out of AI requests.",
      "enterpriseSetting": "Cursor describes best-effort exclusions; verify residual risk and do not treat ignore files as a secret boundary.",
      "risk": "Sensitive repositories or files become available to an agent unexpectedly.",
      "evidence": [
        "https://cursor.com/security"
      ],
      "verified": "2026-09-12",
      "claimBasis": "kyenai-recommendation",
      "owner": "Repository owner",
      "verificationMethod": "Run a controlled test against denied paths and inspect client behavior.",
      "passCriteria": "Restricted files are not intentionally included in prompts, indexes, or agent actions."
    },
    {
      "number": 15,
      "id": "model-policy",
      "domain": "Model governance",
      "control": "Restrict model access",
      "cursorBehavior": "Allow only approved models and providers.",
      "enterpriseSetting": "Verify new-model defaults, router behavior, provider retention, and change control.",
      "risk": "An unapproved model or provider receives company code or prompts.",
      "evidence": [
        "https://cursor.com/enterprise",
        "https://cursor.com/pricing"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "AI platform owner",
      "verificationMethod": "Compare the console allowlist with procurement and privacy approvals.",
      "passCriteria": "Only reviewed models are selectable or routable."
    },
    {
      "number": 16,
      "id": "mcp-policy",
      "domain": "Tool governance",
      "control": "Restrict MCP servers",
      "cursorBehavior": "Allow only reviewed MCP servers and remove stale connections.",
      "enterpriseSetting": "Verify policy coverage for desktop, CLI, cloud agents, plugins, and user-defined servers.",
      "risk": "An unreviewed MCP server or credential can perform an external action.",
      "evidence": [
        "https://cursor.com/enterprise",
        "https://cursor.com/pricing"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "AI platform owner",
      "verificationMethod": "Attempt to connect an approved and an unapproved MCP server.",
      "passCriteria": "Unapproved servers are blocked; approved servers have an owner and review date."
    },
    {
      "number": 17,
      "id": "mcp-secrets",
      "domain": "Tool governance",
      "control": "Protect MCP credentials",
      "cursorBehavior": "Issue scoped credentials per server and avoid long-lived shared secrets.",
      "enterpriseSetting": "Verify where tokens are stored and which administrators or agents can reveal them.",
      "risk": "An unreviewed MCP server or credential can perform an external action.",
      "evidence": [
        "https://cursor.com/security"
      ],
      "verified": "2026-09-12",
      "claimBasis": "kyenai-recommendation",
      "owner": "Security",
      "verificationMethod": "Inspect the credential store, scopes, rotation record, and revocation test.",
      "passCriteria": "Credentials are least-privileged, non-exported where possible, rotated, and revocable."
    },
    {
      "number": 18,
      "id": "agent-global-rules",
      "domain": "Agent governance",
      "control": "Set global agent rules",
      "cursorBehavior": "Configure organization-wide agent policies before broad rollout.",
      "enterpriseSetting": "Verify precedence, supported clients, sync timing, and exception workflow.",
      "risk": "Autonomous commands, network access, or prompt injection cross the approval boundary.",
      "evidence": [
        "https://cursor.com/enterprise"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "Platform engineering",
      "verificationMethod": "Inspect required rules and test behavior with a new user.",
      "passCriteria": "Mandatory rules apply to supported agent surfaces and cannot be silently bypassed."
    },
    {
      "number": 19,
      "id": "auto-run-controls",
      "domain": "Agent governance",
      "control": "Constrain auto-run, browser, and network access",
      "cursorBehavior": "Set conservative defaults for autonomous terminal, browser, and network actions.",
      "enterpriseSetting": "Verify differences among local, CLI, background, and cloud agents.",
      "risk": "Autonomous commands, network access, or prompt injection cross the approval boundary.",
      "evidence": [
        "https://cursor.com/pricing",
        "https://cursor.com/security"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "Security",
      "verificationMethod": "Run controlled allowed and denied actions in each supported agent surface.",
      "passCriteria": "Denied actions require approval or fail; allowed actions are traceable."
    },
    {
      "number": 20,
      "id": "sandbox",
      "domain": "Agent governance",
      "control": "Enforce sandbox policy",
      "cursorBehavior": "Use restricted execution for agent terminal commands where supported.",
      "enterpriseSetting": "Verify team-wide enforcement, bypass permissions, platform differences, and known exclusions.",
      "risk": "Autonomous commands, network access, or prompt injection cross the approval boundary.",
      "evidence": [
        "https://cursor.com/blog/enterprise",
        "https://cursor.com/security"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "Endpoint and platform engineering",
      "verificationMethod": "Test workspace boundaries, temporary-file access, network denial, and escape handling.",
      "passCriteria": "The configured sandbox restricts the expected files and network paths."
    },
    {
      "number": 21,
      "id": "hooks",
      "domain": "Agent governance",
      "control": "Distribute security hooks",
      "cursorBehavior": "Use managed hooks to observe or block sensitive agent actions.",
      "enterpriseSetting": "Verify server-side distribution, tamper resistance, timeout behavior, and plan availability.",
      "risk": "Autonomous commands, network access, or prompt injection cross the approval boundary.",
      "evidence": [
        "https://cursor.com/blog/enterprise",
        "https://cursor.com/pricing"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "Platform engineering",
      "verificationMethod": "Trigger before-prompt and before-command hooks with allowed and denied examples.",
      "passCriteria": "Required hooks run, fail closed where intended, and generate reviewable evidence."
    },
    {
      "number": 22,
      "id": "prompt-injection",
      "domain": "Agent governance",
      "control": "Test prompt-injection resistance",
      "cursorBehavior": "Exercise untrusted repository, web, issue, and MCP content against the approved configuration.",
      "enterpriseSetting": "No public vendor page proves safety for the buyer's exact tools and data; validate locally.",
      "risk": "Autonomous commands, network access, or prompt injection cross the approval boundary.",
      "evidence": [
        "https://cursor.com/security"
      ],
      "verified": "2026-09-12",
      "claimBasis": "kyenai-recommendation",
      "owner": "Product security",
      "verificationMethod": "Run a documented adversarial test with canary secrets and denied tools.",
      "passCriteria": "The agent does not exfiltrate canaries or cross the configured approval boundary."
    },
    {
      "number": 23,
      "id": "audit-log",
      "domain": "Logging",
      "control": "Enable and export audit logs",
      "cursorBehavior": "Capture access, administrative, rule, and configuration events.",
      "enterpriseSetting": "Verify event catalog, retention, API or export, latency, and plan limits.",
      "risk": "The organization cannot attribute, investigate, or prove a high-risk action.",
      "evidence": [
        "https://cursor.com/blog/enterprise",
        "https://cursor.com/pricing"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "Security operations",
      "verificationMethod": "Change a test setting and confirm the event appears in dashboard and CSV export.",
      "passCriteria": "Event identity, timestamp, action, target, and outcome are available for the required period."
    },
    {
      "number": 24,
      "id": "analytics-export",
      "domain": "Logging",
      "control": "Govern analytics and API exports",
      "cursorBehavior": "Review adoption, usage, and AI-code metrics without over-collecting employee data.",
      "enterpriseSetting": "Verify exact fields and legal basis before enabling broad reporting.",
      "risk": "The organization cannot attribute, investigate, or prove a high-risk action.",
      "evidence": [
        "https://cursor.com/enterprise",
        "https://cursor.com/blog/enterprise"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "Data governance",
      "verificationMethod": "Inventory dashboard fields, API outputs, recipients, and retention.",
      "passCriteria": "Metrics have a declared purpose, access control, retention period, and employee notice where required."
    },
    {
      "number": 25,
      "id": "siem-monitoring",
      "domain": "Logging",
      "control": "Integrate security monitoring",
      "cursorBehavior": "Route available audit evidence into the organization's monitoring and incident workflow.",
      "enterpriseSetting": "Verify supported export or API paths and compensate for unavailable events.",
      "risk": "The organization cannot attribute, investigate, or prove a high-risk action.",
      "evidence": [
        "https://cursor.com/blog/enterprise"
      ],
      "verified": "2026-09-12",
      "claimBasis": "kyenai-recommendation",
      "owner": "Security operations",
      "verificationMethod": "Generate a high-risk test event and trace it from Cursor to the response queue.",
      "passCriteria": "The event is ingested, enriched, assigned, and retained under policy."
    },
    {
      "number": 26,
      "id": "trust-evidence",
      "domain": "Assurance",
      "control": "Obtain SOC 2 and penetration-test evidence",
      "cursorBehavior": "Request current SOC 2 Type II and penetration-test materials from the trust portal.",
      "enterpriseSetting": "Required: verify report coverage and bridge letters; certification is not a universal guarantee.",
      "risk": "Contractual or control gaps remain invisible until an incident or assessment.",
      "evidence": [
        "https://cursor.com/security",
        "https://cursor.com/enterprise"
      ],
      "verified": "2026-09-12",
      "claimBasis": "official-public",
      "owner": "Vendor risk",
      "verificationMethod": "Record report period, exceptions, complementary controls, and remediation commitments.",
      "passCriteria": "Evidence is current and gaps are accepted by accountable owners."
    },
    {
      "number": 27,
      "id": "incident-notice",
      "domain": "Assurance",
      "control": "Confirm incident notification",
      "cursorBehavior": "Set contractual notification, cooperation, evidence-preservation, and post-incident obligations.",
      "enterpriseSetting": "Public pages do not define every customer's binding incident terms; verify the MSA or DPA.",
      "risk": "Contractual or control gaps remain invisible until an incident or assessment.",
      "evidence": [
        "https://cursor.com/security"
      ],
      "verified": "2026-09-12",
      "claimBasis": "kyenai-recommendation",
      "owner": "Legal and security",
      "verificationMethod": "Map the signed agreement to the incident response plan and contacts.",
      "passCriteria": "Timeframes and responsibilities meet organizational requirements."
    },
    {
      "number": 28,
      "id": "deletion",
      "domain": "Lifecycle",
      "control": "Test deletion and offboarding",
      "cursorBehavior": "Validate account, workspace, index, token, automation, and retained-data cleanup.",
      "enterpriseSetting": "Verify backups, legal holds, logs, shared artifacts, and contract termination handling.",
      "risk": "Stale access, data, or configuration survives offboarding or a material change.",
      "evidence": [
        "https://cursor.com/security",
        "https://prod.cursor.com/docs/enterprise/privacy-and-data-governance"
      ],
      "verified": "2026-09-12",
      "claimBasis": "kyenai-recommendation",
      "owner": "Privacy and identity",
      "verificationMethod": "Offboard a test user and submit a deletion request; record each completion.",
      "passCriteria": "Access is revoked promptly and deletion follows the documented schedule."
    },
    {
      "number": 29,
      "id": "change-management",
      "domain": "Lifecycle",
      "control": "Monitor material product and policy changes",
      "cursorBehavior": "Track changes to models, subprocessors, retention, security features, and acquisition status.",
      "enterpriseSetting": "Verify notification channels and contractual change rights.",
      "risk": "Stale access, data, or configuration survives offboarding or a material change.",
      "evidence": [
        "https://cursor.com/security",
        "https://cursor.com/data-use"
      ],
      "verified": "2026-09-12",
      "claimBasis": "kyenai-recommendation",
      "owner": "Vendor owner",
      "verificationMethod": "Review vendor notices monthly and compare them with the approved baseline.",
      "passCriteria": "Material changes create a documented reassessment before policy expansion."
    },
    {
      "number": 30,
      "id": "exit-portability",
      "domain": "Lifecycle",
      "control": "Maintain an exit and portability plan",
      "cursorBehavior": "Keep repository instructions, workflows, evidence, and critical automations portable to another agent.",
      "enterpriseSetting": "Verify export availability, data return, deletion, license termination, and dependency inventory.",
      "risk": "Stale access, data, or configuration survives offboarding or a material change.",
      "evidence": [
        "https://cursor.com/enterprise"
      ],
      "verified": "2026-09-12",
      "claimBasis": "kyenai-recommendation",
      "owner": "Engineering leadership",
      "verificationMethod": "Run an annual migration exercise on a representative repository.",
      "passCriteria": "The team can revoke Cursor access and continue critical work within the recovery objective."
    }
  ]
}
