Skip to main content

ServiceNow Security Rules

SquireX implements 29 security rule categories for ServiceNow AI Agents, covering the complete attack surface from agent tool configuration through data exfiltration, infrastructure trust, and supply chain integrity.

Rule Taxonomy​

Rules use the SNOW-* namespace. Categories 1–27 are ported from their Agentforce equivalents for cross-platform consistency. Categories 28–31 are ServiceNow-native rules with no Salesforce equivalent.

Quick Reference​

CategoryRule IDNameSeverity
Tool ConfigurationSNOW-1.1Agent Tool Without Confirmation GateCritical
Script SafetySNOW-2.1Unsafe Script Pattern in Agent ToolCritical
Grounding SecuritySNOW-3.1Grounding Source Without ClassificationHigh
Structural DependencySNOW-4.1Orphaned Agent Tool ReferenceHigh
Flow SecuritySNOW-5.1Flow Action Without Input ValidationHigh
Flow SecuritySNOW-5.2Flow Running in System ContextCritical
Supply ChainSNOW-6.1Update Set Missing Agent DependenciesHigh
Agent ArchitectureSNOW-7.1Agent Instruction BloatMedium
Prompt PoisoningSNOW-9.1Prompt Injection in Agent InstructionsCritical
Prompt PoisoningSNOW-9.2Inbound Email Triggers Agent Without SanitizationCritical
DML ValidationSNOW-10.1Agent DML Without Data Policy GuardHigh
SchedulingSNOW-11.1Scheduled Job Invoking Agent Without GuardrailHigh
Skill KitSNOW-12.1Skill Kit Version DriftHigh
Skill KitSNOW-12.2Latent Memory PoisoningCritical
Data PrivacySNOW-13.1Agent Accessing CMDB Without Privacy GuardHigh
Virtual AgentSNOW-14.1VA Topic Without Input SanitizationHigh
External ServiceSNOW-15.1Integration Spoke Without Cert PinningHigh
Role-Based AccessSNOW-16.1Agent Action Without Role GateHigh
Multi-AgentSNOW-18.1Compositional Fragment TrapHigh
Multi-AgentSNOW-18.2Yokohama Agent Duplication SybilHigh
Trigger ExecutionSNOW-19.1Business Rule Triggering AgentHigh
Excessive AgencySNOW-20.1Agent Executing With Admin PrivilegesCritical
Excessive AgencySNOW-20.2Role Masking Not Configured for Dynamic UserCritical
PII LeakageSNOW-21.1Agent Accessing Sensitive TableCritical
PII LeakageSNOW-21.2Agent Accessing sys_attachmentHigh
SSRFSNOW-22.1Dynamic RESTMessageV2 EndpointCritical
Resource ExhaustionSNOW-23.1Unbounded GlideRecord QueryHigh
API AuthenticationSNOW-24.1API Without OAuth Scope ValidationHigh
MCP AccessSNOW-25.1MCP Server Without Scope ConstraintsHigh
Supply ChainSNOW-26.1Skill Namespace ShadowingHigh
Runtime DriftSNOW-27.1Now Assist API Confirmation BypassCritical
ACL ScriptSNOW-28.1GlideRecord in ACL (Recursive Bypass)Critical
ACL ScriptSNOW-28.2Agent Tool Using GlideRecordHigh
ACL ScriptSNOW-28.3setWorkflow(false) in Agent ContextHigh
ACL ScriptSNOW-28.6addEncodedQuery Without User Context RestrictionHigh
Domain SeparationSNOW-29.1Missing sys_domain ConstraintHigh
Scope HygieneSNOW-30.1Cross-Scope Without Caller AccessHigh
Scope HygieneSNOW-30.2Global Scope Agent Accessing Scoped TablesHigh
Scope HygieneSNOW-30.3Missing sys_scope DeclarationMedium
MID Server TrustSNOW-31.1Insecure MID Server AuthenticationCritical
MID Server TrustSNOW-31.2MID Server Credential in ScriptCritical
MID Server TrustSNOW-31.3Unencrypted MID Server ChannelHigh
MID Server TrustSNOW-31.4MID Server Without IP AllowlistMedium

Regulatory Compliance Tagging​

Every security finding identified by SquireX is automatically tagged with applicable regulatory compliance frameworks in the generated SARIF report. This enables immediate gap analysis for audit readiness and maps technical vulnerabilities to business risk.

Supported frameworks include:

  • EU AI Act (High-Risk classifications for autonomous agents)
  • NIST AI RMF (Risk Management Framework)
  • SOC 2 Type II (CC6 Logical/Physical Access Controls, CC7 System Operations)
  • HIPAA (PHI protection)
  • PCI DSS (Cardholder data environment security)
  • OWASP MCP Top 10 (Model Context Protocol risks)
{
"properties": {
"tags": ["security", "servicenow", "ServiceNow ACL"],
"category": "ServiceNow ACL",
"compliance": ["SOC2_CC6", "NIST_AI_RMF"]
}
}

Ported Categories (SNOW-1 through SNOW-27)​

These rules are the ServiceNow equivalents of Agentforce rules. The rule IDs intentionally mirror their Agentforce counterparts for cross-platform comparison.

SNOW-1 β€” Tool Configuration​

Detects sn_aia_tool definitions configured for autonomous execution without user confirmation gates.

// ❌ Tool configured for autonomous execution
// sn_aia_tool: execution_mode = "autonomous", requires_confirmation = false

// βœ… Supervised tool with confirmation
// sn_aia_tool: execution_mode = "supervised", requires_confirmation = true

SNOW-2 β€” Script Tool Safety​

Detects unsafe scripting patterns (eval(), GlideEvaluator, Packages.java, GlideSystemScript) in agent-accessible Script Includes.

// ❌ VULNERABLE β€” eval in agent tool script
var result = eval(inputs.expression); // RCE via prompt injection!

// βœ… SECURE β€” use structured logic
var calc = new AgentCalculator();
var result = calc.evaluate(inputs.operation, inputs.operands);

SNOW-3 β€” Grounding Security​

Detects AI Search grounding sources and RAG configurations that lack data classification guards.

SNOW-4 β€” Structural Dependency​

Detects orphaned or broken sys_id references in sn_aia_agent_tool_m2m records that cause silent reasoning failures.

SNOW-5 β€” Flow Security​

See Flow Designer Scanning for detailed coverage.

SNOW-6 β€” Supply Chain / Update Set Hygiene​

Detects Update Sets with missing dependencies, hash validation failures, and promotion drift.

SNOW-7 β€” Instruction Bloat​

Detects sn_aia_agent definitions with instruction fields exceeding 4,000 characters.

SNOW-9 β€” Prompt Poisoning​

Detects prompt injection vectors in agent instructions and inbound email action scripts (a classic injection path unique to ServiceNow).

SNOW-10 β€” DML Validation​

Detects agent scripts performing insert/update/delete without Data Policy validation.

SNOW-11 β€” Autonomous Scheduling​

Detects scheduled jobs invoking AI agents without execution guardrails.

SNOW-12 β€” Skill Kit Version Drift & Memory Poisoning​

Detects sys_gen_ai_skill_applicability records with missing ACLs. See Flow Designer Scanning for details.

Also includes SNOW-12.2 (Latent Memory Poisoning), which analyzes sn_aia_memory table records for embedded instruction-injection payloads that persist across sessions.

SNOW-13 β€” Data Privacy / CMDB​

Detects agent scripts accessing CMDB tables (cmdb_ci_*) where read access constitutes infrastructure topology disclosure.

// ❌ VULNERABLE β€” agent queries full CMDB topology
var gr = new GlideRecord('cmdb_ci_server');
gr.query(); // Exposes server names, IPs, network architecture

// βœ… SECURE β€” scoped access with field filtering
var gr = new GlideRecordSecure('cmdb_ci_server');
gr.setFields('name,sys_class_name');
gr.setLimit(20);
gr.addQuery('support_group', groupSysId);
gr.query();

SNOW-14 β€” Virtual Agent Channels​

See Virtual Agent Scanning for detailed coverage.

SNOW-15 β€” IntegrationHub Spokes​

Detects spoke configurations lacking certificate pinning or using basic authentication.

SNOW-16 β€” Role-Based Access​

Detects agent scripts performing privileged operations without gs.hasRole() checks.

SNOW-18 β€” Multi-Agent Orchestration​

Detects Sybil identity risks from shared tool references across multiple agents. Includes SNOW-18.2 (Yokohama Agent Duplication Sybil) which detects duplicated agents that share undecoupled tool mappings in Yokohama Patch 1.

SNOW-19 β€” Trigger Executions​

Detects Business Rules that invoke AI agents, creating cascading BR→Agent→DML→BR chains.

SNOW-20 β€” Excessive Agency​

Detects agents configured with admin role or scripts using elevated privileges. Includes SNOW-20.2 (Role Masking Cascade Validation) which validates that agents using Dynamic User identity mode have Role Masking properly configured to prevent unrestricted instance access.

// ❌ VULNERABLE β€” agent has admin role
// sn_aia_agent: execution_identity has role "admin"

// βœ… SECURE β€” least-privilege Role Masking
// sn_aia_agent: execution_identity has roles ["itil", "catalog"]
// Role Masking enabled to restrict to minimum required permissions

SNOW-21 β€” PII Leakage​

Detects scripts accessing sensitive tables (sys_user, incident, hr_case, sys_attachment) without data privacy guards. See also SNOW-13 for CMDB-specific patterns.

SNOW-22 β€” SSRF​

Detects sn_ws.RESTMessageV2 calls with dynamic endpoints derived from agent input.

SNOW-23 β€” Resource Exhaustion​

Detects unbounded GlideRecord queries without setLimit() or chooseWindow().

SNOW-24 β€” API Authentication​

Detects Scripted REST endpoints serving agent operations without OAuth entity scope validation.

SNOW-25 β€” MCP External Access​

Detects MCP server configurations accessible to agents without scope constraints.

SNOW-26 β€” Namespace Shadowing​

Detects duplicate tool/skill labels across scoped applications that confuse agent tool routing.

SNOW-27 β€” Runtime Drift​

Detects Now Assist API paths that bypass tool confirmation requirements.


Net-New Categories (SNOW-28 through SNOW-31)​

These rules address ServiceNow-specific attack surfaces with no Salesforce equivalent.

SNOW-28 β€” ACL Script Correctness​

The highest-leverage ServiceNow security finding. GlideRecord in ACL scripts creates a recursive bypass β€” the access control check itself bypasses access control.

// ❌ CRITICAL β€” GlideRecord in ACL = recursive bypass
var gr = new GlideRecord('sys_user_has_role');
gr.addQuery('user', gs.getUserID());
gr.addQuery('role.name', 'admin');
gr.query();
answer = gr.next();

// βœ… CORRECT β€” use built-in ACL APIs
answer = gs.hasRole('admin');

Also includes SNOW-28.6, which detects use of addEncodedQuery() in agent-facing scripts where addUserEncodedQuery() should be used to restrict data to the active user's authorized context.

SNOW-29 β€” Domain Separation Drift​

Detects scripts accessing records without sys_domain constraints in multi-domain instances.

SNOW-30 β€” Application Scope Hygiene​

Detects cross-scope access without caller_access declarations and scope boundary violations.

SNOW-31 β€” MID Server / Discovery Trust​

Detects insecure MID Server configurations including credentials in scripts, unencrypted channels, and missing IP allowlists.


Cross-Platform Rule Comparison​

For organizations running both Salesforce Agentforce and ServiceNow Now Assist, the matched rule IDs enable unified security reporting:

Agentforce RuleServiceNow RuleShared Threat Model
AGENTFORCE-1.1SNOW-1.1Excessive Agency β€” missing confirmation
AGENTFORCE-2.1SNOW-2.1Script injection in agent tools
AGENTFORCE-20.1SNOW-20.1Admin privilege escalation
AGENTFORCE-21.1SNOW-21.1PII data exfiltration
AGENTFORCE-22.1SNOW-22.1SSRF via dynamic endpoints
β€”SNOW-28.1GlideRecord ACL bypass (SN-only)
β€”SNOW-31.1MID Server trust (SN-only)