Someone left the master key to your IT operations center on a public-facing API endpoint
CVE-2026-18885 is a code injection vulnerability in the GraphQL Composite Data API of the ServiceNow AI Platform. An unauthenticated attacker can send a crafted request to the GraphQL endpoint and achieve arbitrary code execution on the ServiceNow instance, with full read/write access to instance data. Affected releases include Xanadu (before Patch 11 Hot Fix 7a), Yokohama (before Patch 12 Hot Fix 3b / Patch 13 Hot Fix 4), Zurich (before Patches 7b–12), and Australia (before Patches 2–5). The vulnerability was discovered by Adam Kues of Assetnote (now Searchlight Cyber) and disclosed on August 27, 2026.
ServiceNow assigned this a CVSS 4.0 score of 10.0 — the maximum possible. That score is *warranted*. This is unauthenticated, network-reachable, low-complexity, zero-interaction RCE on a platform that by design sits on the internet and holds your CMDB, ITSM tickets, HR records, security operations data, and workflow automation. The only reason this isn't a universal emergency is that cloud-hosted instances were silently patched by ServiceNow — self-hosted and partner-hosted instances remain fully exposed until administrators apply the hotfix manually. Given Assetnote's track record of publishing detailed technical writeups (they did exactly this for the earlier CVE-2026-6875 chain), expect weaponization timelines measured in days to weeks, not months.
4 steps from start to impact.
Identify exposed ServiceNow instance
*.service-now.com subdomains. ServiceNow instances are internet-facing by design — they serve employee self-service portals, IT ticketing, and API integrations. Self-hosted instances often run on custom domains but are equally discoverable.- Target organization runs ServiceNow on a reachable URL
- Cloud-hosted instances are already patched by ServiceNow as of August 27, 2026
- Self-hosted instances behind VPN or IP-restricted access reduce exposure
http.title:"ServiceNow" or http.favicon.hash identifies instances. Asset inventory should already track your ServiceNow deployment.Send crafted GraphQL request
- GraphQL Composite Data API endpoint is reachable (default on)
- Instance is running a vulnerable version
- No public PoC exists as of August 29, 2026
- WAF rules blocking malicious GraphQL payloads may provide partial coverage
/api/now/graphql or composite data endpoints. Look for atypical query depth or injection patterns.Escape sandbox and execute arbitrary code
- Successful code injection from step 2
- Sandbox hardening introduced after CVE-2026-6875 may complicate older escape techniques, but this CVE explicitly bypasses those mitigations
sys_audit, syslog) for unexpected script executions, new admin user creation, or bulk table reads. ServiceNow's own security event monitoring should flag anomalous API behavior.Exfiltrate data or establish persistence
- Full instance compromise from step 3
- MID Server pivot requires MID Servers to be deployed and connected
- Network segmentation may limit lateral movement from MID Servers
sys_user_has_role, unexpected scheduled jobs in sys_trigger, and anomalous MID Server commands. SIEM correlation on ServiceNow audit logs is essential.The supporting signals.
| In-the-Wild Exploitation | No known exploitation. ServiceNow states it is "not currently aware of exploitation." However, the closely related CVE-2026-6875 (same platform, same class) was actively exploited in July 2026, establishing a clear pattern of rapid weaponization for ServiceNow pre-auth bugs. |
|---|---|
| Proof-of-Concept | No public PoC as of August 29, 2026. Credited researcher is Adam Kues (Assetnote / Searchlight Cyber), who has a track record of publishing detailed technical research on ServiceNow vulns — expect a blog post and potential PoC within weeks. |
| EPSS | 0.00383 (low, but this is expected for a 2-day-old CVE — EPSS lags on fresh disclosures) |
| KEV Status | Not listed. Given the sibling CVE-2026-6875 was exploited within weeks of disclosure, KEV listing is plausible if exploitation materializes. |
| CVSS Vector | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H — 10.0. Every metric is at maximum. Network-reachable, no auth, no interaction, full CIA impact on the vulnerable and downstream systems. |
| Affected Versions | Xanadu (before Patch 11 HF 7a), Yokohama (before Patch 12 HF 3b / Patch 13 HF 4), Zurich (before Patches 7b–12), Australia (before Patches 2–5) |
| Fixed Versions | Xanadu Patch 11 Hot Fix 7a, Yokohama Patch 12 Hot Fix 3b / Patch 13 Hot Fix 4, Zurich Patches 7b HF3 through 12, Australia Patches 2 HF3 through 5. Cloud-hosted instances already patched. |
| Scanning / Exposure Data | ServiceNow serves ~8,800 enterprise customers globally. Most are cloud-hosted (patched). Self-hosted instances are identifiable via Shodan (http.title:"ServiceNow"). The June 2026 API exposure incident confirmed that many instances had misconfigured API access. |
| Disclosure Date | 2026-08-27 (reserved 2026-08-04) |
| Reporting Researcher | Adam Kues, Assetnote (acquired by Searchlight Cyber) |
noisgate verdict.
The single most decisive factor is that the affected component — ServiceNow — is an internet-facing enterprise operations platform holding CMDB, ITSM, HR, and SecOps data, and this vulnerability requires zero authentication to achieve full instance compromise. The established pattern of rapid exploitation against ServiceNow pre-auth RCEs (CVE-2026-6875 was weaponized within weeks) makes the threat window for self-hosted instances extremely narrow.
Why this verdict
- Unauthenticated remote code execution with zero interaction: CVSS 4.0 10.0 is not hyperbole here — every attack prerequisite metric is at its worst value. No credentials, no phishing, no user clicks. An attacker needs only a reachable URL.
- Internet-facing by design: Unlike most enterprise software that sits behind firewalls, ServiceNow instances are *designed* to be internet-accessible for employee self-service, API integrations, and partner access. The attack surface is not theoretical — it's the product's default deployment posture.
- Role multiplier: ServiceNow is canonically a high-value-role platform. It functions as the enterprise CMDB (full asset inventory), ITSM hub (tickets frequently contain credentials and network diagrams), HR system of record, and increasingly as the SecOps/SOAR platform. Compromise of a ServiceNow instance yields fleet-scale reconnaissance data and operational control over IT workflows. For organizations using MID Servers, the blast radius extends into the internal network. This is not a line-of-business app — it is infrastructure-tier software. The floor is CRITICAL.
- Sibling CVE exploitation precedent: CVE-2026-6875, the same vulnerability class (sandbox escape in ServiceNow AI Platform), was actively exploited in July 2026. Attackers reverse-engineered patches without needing a public PoC. The same will happen here.
- Cloud-hosted mitigation is real but incomplete: ServiceNow patched cloud-hosted instances automatically, which covers the majority of the installed base. This prevents the score from being a full 10.0. However, self-hosted instances (common in regulated industries, government, and defense) remain fully exposed and represent the highest-value targets.
Why not higher?
A score of 10.0 would require the entire installed base to be vulnerable. Cloud-hosted instances — the majority of ServiceNow deployments — were silently patched by the vendor on August 27. The self-hosted population, while significant and disproportionately high-value (government, defense, regulated industries), is a subset. No public PoC or confirmed exploitation exists yet for this specific CVE.
Why not lower?
Downgrading below CRITICAL is not defensible. This is unauthenticated RCE on an internet-facing platform with zero friction in the attack chain. The affected component is canonically infrastructure-tier: it holds the CMDB, runs IT workflows, and in many orgs manages security operations. The blast radius on compromise is fleet-scale reconnaissance at minimum, internal network pivot via MID Servers at worst. The sibling CVE was exploited in the wild within weeks. Every friction-based downgrade argument collapses against the role multiplier.
What to do — in priority order.
- Restrict GraphQL API access to authenticated users only — If you run a self-hosted instance, immediately configure ACLs on the GraphQL Composite Data API endpoints to require authentication. This directly blocks the unauthenticated attack vector. Deploy within the noisgate mitigation SLA of ≤ 3 days for CRITICAL findings.
- IP-restrict access to your ServiceNow instance — Place self-hosted instances behind VPN or IP allowlists. ServiceNow instances should not be reachable from arbitrary internet IPs. This is a defense-in-depth measure — the platform was designed for broad access, but until patched, limiting who can reach it is essential. Deploy within 3 days.
- Disable MID Server integrations temporarily — If your instance is compromised, MID Servers provide a direct pivot into your internal network. Disabling or monitoring MID Server connections limits the blast radius while you patch. Re-enable after applying the hotfix.
- Audit for indicators of compromise — Check
sys_user_has_rolefor unexpected admin grants,sys_triggerfor unknown scheduled jobs,syslogfor anomalous script executions, andsys_auditfor bulk table reads. Correlate with your SIEM. Do this immediately — the vulnerability has been public for 2 days. - Apply the vendor hotfix — This is the definitive fix. Self-hosted customers should apply the appropriate hotfix for their release (Xanadu Patch 11 HF 7a, Yokohama Patch 12 HF 3b or Patch 13 HF 4, Zurich, or Australia patches) within the noisgate remediation SLA of ≤ 90 days, though given the severity and exploitation precedent, target ≤ 7 days.
- WAF rules alone — GraphQL injection payloads are highly variable and can be obfuscated. Generic WAF signatures will not reliably catch novel exploitation of this specific code injection path. WAF is a speed bump, not a fix.
- Network-level IDS/IPS — the traffic is standard HTTPS to a legitimate ServiceNow endpoint. There is no network-layer anomaly to detect; the malicious payload is in the application layer inside an encrypted TLS session.
- Disabling the AI Platform feature flag — the GraphQL Composite Data API is a core platform component, not an optional AI add-on. Disabling AI features does not remove the vulnerable endpoint.
Crowdsourced verification payload.
Run this script from any host that can reach your ServiceNow instance over HTTPS. Usage: ./check_cve_2026_18885.sh https://your-instance.service-now.com. No authentication required — it checks the instance version via the public stats endpoint.
#!/bin/bash
# CVE-2026-18885 Version Checker
# Checks if a ServiceNow instance is running a vulnerable version
# Usage: ./check_cve_2026_18885.sh <instance_url>
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN
set -euo pipefail
if [ $# -ne 1 ]; then
echo "Usage: $0 <instance_url>"
echo "Example: $0 https://mycompany.service-now.com"
exit 2
fi
INSTANCE_URL="${1%/}"
# Try to get instance version from stats.do or xmlstats.do
echo "[*] Checking ServiceNow instance: $INSTANCE_URL"
# Attempt version detection via login page or stats endpoint
VERSION_RAW=$(curl -sk -m 10 "$INSTANCE_URL/stats.do" 2>/dev/null | grep -oP 'Build tag:\s*\K[^<]+' || true)
if [ -z "$VERSION_RAW" ]; then
VERSION_RAW=$(curl -sk -m 10 "$INSTANCE_URL/xmlstats.do" 2>/dev/null | grep -oP '<build_tag>[^<]+' | sed 's/<build_tag>//' || true)
fi
if [ -z "$VERSION_RAW" ]; then
# Try login page for version hints
VERSION_RAW=$(curl -sk -m 10 "$INSTANCE_URL/login.do" 2>/dev/null | grep -oP 'build_tag"?\s*[:=]\s*"?[^"<,]+' | head -1 || true)
fi
if [ -z "$VERSION_RAW" ]; then
echo "[!] UNKNOWN — Could not determine instance version."
echo " The stats.do endpoint may be restricted."
echo " Manually verify your patch level against:"
echo " - Xanadu: need Patch 11 Hot Fix 7a or later"
echo " - Yokohama: need Patch 12 HF 3b or Patch 13 HF 4 or later"
echo " - Zurich: need Patch 7b HF3 or later"
echo " - Australia: need Patch 2 HF3 or later"
echo "UNKNOWN"
exit 2
fi
echo "[*] Detected build tag: $VERSION_RAW"
# Check for known-patched version strings
# This is a heuristic — exact build tags vary by release
if echo "$VERSION_RAW" | grep -qiE '(australia_patch[5-9]|australia_patch[0-9]{2}|zurich_patch1[2-9]|zurich_patch[2-9][0-9]|yokohama_patch1[3-9].*hf[4-9]|yokohama_patch1[4-9]|xanadu_patch1[1-9].*hf[7-9])'; then
echo "[+] PATCHED — Instance appears to be running a fixed version."
echo "PATCHED"
exit 0
else
echo "[-] VULNERABLE — Instance may be running a version affected by CVE-2026-18885."
echo " Verify exact patch level and apply hotfix immediately."
echo " Reference: https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB3152242"
echo "VULNERABLE"
exit 1
fiIf you remember one thing.
Sources
- ServiceNow August 2026 CVE Advisory (KB3152242)
- The Hacker News — Three CVSS 10.0 ServiceNow Flaws
- BleepingComputer — ServiceNow warns of three max severity vulnerabilities
- CSO Online — ServiceNow patches three maximum severity flaws
- Help Net Security — ServiceNow CVE-2026-6875 exploited in the wild
- THREATINT CVE-2026-18885 Entry
- Searchlight Cyber — Assetnote ServiceNow Research
- NHS England Digital — ServiceNow Security Advisory CC-4839
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.