What This Table Is

The sn_vul_vulnerable_item table stores individual vulnerability tracking records that represent the relationship between a specific CVE and an affected Configuration Item. Each record represents one "vulnerable item" - essentially answering the question "which CIs are affected by which vulnerabilities?" This table is the backbone of vulnerability response management in ServiceNow's Security Operations (SecOps) module.

The SecOps module owns this table and uses it to track vulnerability remediation from discovery through resolution. When vulnerability scanners feed data into ServiceNow, they create records in this table to establish which CIs have which security flaws. The vulnerability response process then uses these records to assign remediation work, track progress, and measure risk reduction across the infrastructure.

This table extends the task table, inheriting standard workflow fields like state, assignment_group, and assigned_to. This means you get full task management capabilities - approvals, SLAs, notifications, and workflow - applied to vulnerability remediation. No child tables extend this one; it's a leaf table in the task hierarchy designed specifically for vulnerability tracking.

In large enterprises, this table grows rapidly - expect 50,000+ records per month in organizations with comprehensive vulnerability scanning. Performance remains solid because ServiceNow indexes key fields like vulnerability, configuration_item, and state. However, avoid queries that span multiple months without proper indexing - the volume can impact performance.

When You'll Script Against This Table

You'll primarily script against this table in Business Rules that automate vulnerability response workflows - like auto-assigning critical vulnerabilities to security teams, creating remediation tasks when new high-severity items are discovered, or updating CI risk scores based on vulnerability counts. Scheduled Script Executions frequently query this table to generate vulnerability dashboards, SLA compliance reports, and aging analysis for overdue remediations.

Access requires the sn_vul_read role minimum for queries, sn_vul_write for updates. The Security Operations application scope (x_swo_secops) controls most customizations, but global scope scripts can read and write with proper roles.

Common scripting patterns:

  • Auto-assign based on CI ownership or business service mapping
  • Calculate risk scores by aggregating CVSS scores across CIs
  • Create child remediation tasks for complex vulnerability fixes
  • Sync status with external vulnerability scanners via REST APIs
  • Generate compliance reports showing remediation timelines
  • Update CI records with vulnerability counts and risk ratings
  • Close duplicate vulnerable items when patches are applied

Table Gotchas

⚠️

The vulnerability field is NOT a direct reference to CVE records. It references sn_vul_vulnerability table records, which contain CVE details. Always join through the vulnerability table to get CVE numbers and CVSS scores.

⚠️

State transitions don't follow standard task workflows. States like 'Investigate', 'Remediate', and 'Verify' are vulnerability-specific. Don't assume task state logic applies here.

  • The configuration_item field accepts any CI class, but performance degrades with queries spanning multiple CI types. Filter by cmdb_ci subclasses when possible.
  • Records can exist without assignment_group values if auto-assignment fails. Always null-check before assuming assignment exists.
⚠️

The same CVE affecting the same CI can create multiple vulnerable item records if discovered by different scanners or scan runs. Check for duplicates before creating new records.

  • Queries filtering by vulnerability severity need to join to sn_vul_vulnerability - there's no direct severity field on vulnerable items.
  • Business Rules on this table fire frequently due to scanner integrations. Heavy processing in before rules can impact scanner performance.
Free Newsletter

Enjoying this? Get one deep-dive per week.

Join 1,000+ ServiceNow pros — scripts, GlideRecord patterns, Flow Designer techniques, and career moves. Free.

No spam · Unsubscribe anytime

The parent task table provides all the workflow infrastructure - states, assignments, approvals, and SLA tracking. When you need to understand vulnerability remediation processes, you'll often query task fields alongside vulnerability-specific data. The task inheritance also means vulnerable items appear in general task reports and assignment workbenches automatically.

The sn_vul_vulnerability table holds the actual CVE details, CVSS scores, and vulnerability metadata. You'll constantly join these tables together - vulnerable items for the "what needs fixing" and vulnerabilities for the "how bad is it" information. The cmdb_ci table and its subclasses (like cmdb_ci_computer, cmdb_ci_server) provide CI ownership, business service mappings, and environment details that drive assignment logic.

The sys_user_group and sys_user tables matter for assignment workflows and escalation paths. Many vulnerability response processes also create related records in change_request for patch management and sc_req_item for software updates, making these common join targets in comprehensive vulnerability tracking queries.