← All security articles
CRITICALYokohama, Zurich, Australia

September 2026 ServiceNow AI Platform CVE Batch (CVE-2026-13016, CVE-2026-86857 to CVE-2026-86860)

Domain 7: Architecture & Threat Modeling·

Your instance is affected if it runs Yokohama, Zurich or Australia below the patch levels ServiceNow published on 24 September 2026. Five CVEs landed in one batch, all in the ServiceNow AI Platform, and four of the five need no login at all. The most severe is an unauthenticated SQL injection. One patch closes all five, so the only question worth answering is which build your instance is on.

What This Is

On 24 September 2026, ServiceNow published five CVEs against the ServiceNow AI Platform, remediated together and shipped in a single set of patch levels. Each was found through internal security testing, customer security assessments, or ServiceNow's responsible-disclosure and bug-bounty programmes. ServiceNow states it found no evidence of malicious exploitation for any of the five.

CVE CVSS v4.0 CWE Login needed? What it gives an attacker
CVE-2026-13016 9.3 CRITICAL CWE-89 No Arbitrary SQL against the instance database — read and write
CVE-2026-86860 9.3 CRITICAL CWE-862 No Reads instance data, "resulting in privilege escalation"
CVE-2026-86858 8.7 HIGH CWE-284 No Creates, modifies or deletes instance data
CVE-2026-86859 8.7 HIGH CWE-284 No Reads AI Platform data the caller is not entitled to
CVE-2026-86857 8.4 HIGH (none assigned) Yes Reads AI Platform data another user is entitled to

Scores, vectors and CWE assignments above are as published by ServiceNow as CNA on CVE.org and enriched by NVD — all publicly checkable against each CVE's record. The CVSS vectors separate capabilities that the one-line descriptions blur together. CVE-2026-86858 is scored VC:N/VI:H — confidentiality None, integrity High — so it is a write primitive, not a read one. CVE-2026-86859 is its mirror at VC:H/VI:N. Both score 8.7, and triaging this batch by score alone hides that they describe opposite abilities. CVE-2026-86860 scores SC:H/SI:H on the subsequent-system metrics, which is how ServiceNow's phrase "resulting in privilege escalation" is expressed numerically: the consequence is rated as reaching past the vulnerable component. CVE-2026-13016 keeps SC:N/SI:N but carries VC:H/VI:H/VA:H — full impact on the instance and its database.

Fixed-in patch levels, identical for all five CVEs:

Release Fixed in
Australia Patch 2 Hot Fix 4b W32 / Patch 4 Hot Fix 3 / Patch 5
Zurich Patch 10 Hot Fix 3b / Patch 10 Hot Fix 4a W32 / Patch 11 Hot Fix 3
Yokohama Patch 13 Hot Fix 5a

Customers enrolled in the ServiceNow August Patching Program received Yokohama Patch 13 Hot Fix 5a, Zurich Patch 10 Hot Fix 4a W32, or Australia Patch 2 Hot Fix 4b W32 automatically. Xanadu and earlier receive no fix in this batch. Those families are out of support, which is not the same as being unaffected — no fixed version exists, so no version check can clear them.

Why This Is Dangerous

Four of the five require no credentials. An attacker does not need a stolen password, a guest account, or a self-registered portal user — only the instance URL, which is public by construction for any customer-facing ServiceNow deployment.

Attack Scenario 1 — Database-level compromise via CVE-2026-13016. An attacker who has never logged in executes SQL statements of their own choosing against the database behind the instance. This is scored VC:H/VI:H/VA:H: they can read any table, modify records, and affect availability. Platform ACLs are irrelevant here — ACL evaluation happens above the database, and an attacker executing statements directly has stepped underneath every control the platform offers. There is no role configuration, no ACL tightening, and no scoped-application boundary that contains this.

Attack Scenario 2 — Silent privilege escalation via CVE-2026-86860. An attacker reads instance data through a missing authorization check, and ServiceNow rates the outcome as privilege escalation reaching past the AI Platform itself. The data an attacker wants first is the data that buys authenticated access: user records, integration configuration, and anything a previous operator pasted into a record in plain text. A read-only flaw becomes a write-capable one the moment it yields a working credential.

Attack Scenario 3 — Data forgery via CVE-2026-86858. An unauthenticated attacker creates, modifies or deletes records. This is the scenario most likely to be missed during recovery, because the instinct after a disclosure is to ask "what did they read?" An integrity flaw inverts the question. A forged approval, an altered change record, or a silently deleted audit row is an attack that leaves the instance running normally and looking correct.

Attack Scenario 4 — Entitlement bypass via CVE-2026-86859 and CVE-2026-86857. Both let a caller reach AI Platform data they are not entitled to; CVE-2026-86859 needs no login, CVE-2026-86857 needs any login. On an instance with self-registration, a customer-facing portal, or a large contractor population, "any authenticated user" is a much larger set than it first sounds, and CVE-2026-86857's PR:L is a weaker barrier than it appears on the vector.

The AI Platform is the common surface. All five are in the same component. An organisation that has activated Now Assist, AI Search, or AI agents has enabled this surface; the batch is a statement about the concentration of risk in that component, not five unrelated coincidences.

How to Detect

There is no verified detection signal for these CVEs. No public indicator of compromise, no exploitation fingerprint, and no log pattern has been published or verified against a live instance for any of the five. Detection here means establishing your patch level against the advisory matrix — not hunting for exploitation you have no verified way to recognise. Searching transaction logs for "suspicious AI endpoint access" without a verified matcher produces false confidence in both directions.

Determine the instance release and patch level

/*
 * CVE-007 — September 2026 AI Platform CVE batch: patch-level verification
 * Reports the instance build so it can be compared against the advisory matrix.
 *
 * Run as: Background script with admin role
 * Impact: Read-only, safe for production
 */

var buildTag = gs.getProperty('glide.buildtag', '');
var buildDate = gs.getProperty('glide.builddate', '');
var war = gs.getProperty('glide.war', '');
var instanceName = gs.getProperty('instance_name', '');

gs.info('=== CVE-007: SEPTEMBER 2026 AI PLATFORM CVE BATCH ===');
gs.info('Instance:   ' + instanceName);
gs.info('Build tag:  ' + buildTag);
gs.info('Build date: ' + buildDate);
gs.info('WAR:        ' + war);
gs.info('');

var tag = buildTag.toLowerCase();
var relFamily = 'Unknown';
if (tag.indexOf('yokohama') > -1) relFamily = 'Yokohama';
else if (tag.indexOf('zurich') > -1) relFamily = 'Zurich';
else if (tag.indexOf('australia') > -1) relFamily = 'Australia';
else if (tag.indexOf('xanadu') > -1) relFamily = 'Xanadu';

gs.info('Release family: ' + relFamily);
gs.info('');

if (relFamily == 'Xanadu' || relFamily == 'Unknown') {
    gs.info('NO FIX PUBLISHED for this release family in the September 2026 batch.');
    gs.info('Out of support is NOT the same as unaffected — treat as exposed and plan an upgrade.');
} else {
    gs.info('Compare the patch level in the build tag above against:');
    if (relFamily == 'Australia') {
        gs.info('  Australia: Patch 2 Hot Fix 4b W32 / Patch 4 Hot Fix 3 / Patch 5');
    } else if (relFamily == 'Zurich') {
        gs.info('  Zurich: Patch 10 Hot Fix 3b / Patch 10 Hot Fix 4a W32 / Patch 11 Hot Fix 3');
    } else {
        gs.info('  Yokohama: Patch 13 Hot Fix 5a');
    }
    gs.info('At or above the listed level for your branch = patched for all five CVEs.');
}

glide.buildtag carries the release name and patch level together (for example glide-zurich-07-01-2025__patch6-01-16-2026), which is why it is the property to trust. glide.builddate is a timestamp and does not reliably identify a patch level — two instances on different patches can share a build date, so a date comparison is not a substitute for reading the tag.

Confirm the upgrade actually landed

Re-read the build tag after the patch window closes, using the script above. A stalled, rolled-back or partially-applied upgrade leaves the previous build serving while the change record says the work is finished, and the build tag is the only thing that reports what is actually running. Cross-check it against System Diagnostics → Upgrade History in the platform UI for the completion state of the most recent upgrade.

Do not accept a change record, a maintenance-window confirmation, or a vendor notification as evidence of patch level. Each of those says what was intended; the build tag says what is serving.

Remediation

  1. Read your build tag and compare it to the matrix above. Use the first script, or System Diagnostics → Stats. This is the whole determination — patched or not patched — and it takes a minute. Do it before anything else on this list.

    Mitigates: All four scenarios — establishes whether any of them currently apply to this instance.

  2. Hosted (SaaS) instances: confirm, do not assume. ServiceNow patched hosted instances itself, but confirmation is a build-tag read, not a trust exercise. An instance pinned to an older patch branch for change-freeze reasons may not have received it.

    Mitigates: All four scenarios — but only once the build is actually confirmed. An assumed patch mitigates nothing.

  3. Self-hosted and partner-managed instances: apply the patch or upgrade now. This is where the real exposure sits. Self-hosted customers historically lag hosted deployment by days to weeks, and that gap is the residual risk window for four unauthenticated flaws.

    Mitigates: All four scenarios — this is the only step that removes the vulnerabilities rather than containing them.

  4. If you cannot patch within 24–48 hours, restrict network reachability. Limit public access to the instance at the WAF or perimeter until the patch lands. This is containment, not a fix: it narrows who can reach the flaw, and does nothing about who already could.

    Mitigates: Attack Scenario 1 (Database-level compromise) and Attack Scenario 4 (Entitlement bypass) — it narrows external reachability but does nothing about authenticated users who retain access through the allowed path. CVE-2026-86857 needs only a login, and a self-registered portal user or a compromised contractor SSO session is an external attacker holding a valid one.

  5. Check the upgrade completed. Run the second detection script. A stalled or rolled-back upgrade leaves the previous build serving while the change record says the work is done.

    Mitigates: All four scenarios — a patch that did not land is indistinguishable from one that was never applied, except on paper.

  6. After patching, reason about integrity, not just confidentiality. CVE-2026-86858 permits unauthenticated creation, modification and deletion. If you are assessing a possible pre-patch exposure window, review records created or modified in that window — approvals, change records, and role grants especially — rather than only asking what might have been read.

    Mitigates: Attack Scenario 3 (Data forgery) — patching stops further writes but does not identify or reverse writes that already happened.

  7. Treat credential rotation as a decision, not a reflex. CVE-2026-86860 and CVE-2026-86859 are read primitives against AI Platform data. If your instance stores secrets where a read primitive could reach them, rotation is warranted; if it does not, rotation is churn. The prerequisite is knowing where secrets live — which is the Secrets and Credentials Stored in ServiceNow Records question, not this one.

    Mitigates: Attack Scenario 2 (Silent privilege escalation) — removes the value of anything an attacker may have read before the patch.

Do not go looking for a platform property that "requires authentication" globally as a workaround. No such toggle closes these flaws, and the property names that sound like one do not exist. Patching is the remediation.

Regulatory Impact

Expert Notes