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_itemfield accepts any CI class, but performance degrades with queries spanning multiple CI types. Filter bycmdb_cisubclasses when possible. - Records can exist without
assignment_groupvalues 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
beforerules can impact scanner performance.
Enjoying this? Get one deep-dive per week.
Join 1,000+ ServiceNow pros — scripts, GlideRecord patterns, Flow Designer techniques, and career moves. Free.
Related Tables
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.